<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::visualization::PCLVisualizer类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1visualization_1_1_p_c_l_visualizer.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="#pub-attribs">Public 属性</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1visualization_1_1_p_c_l_visualizer-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::visualization::PCLVisualizer类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>PCL Visualizer main class.  
 <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="pcl__visualizer_8h_source.html">pcl_visualizer.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_exit_callback.html">ExitCallback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_exit_main_loop_timer_callback.html">ExitMainLoopTimerCallback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_f_p_s_callback.html">FPSCallback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:ad6cd380bef9fdf5920b71fa330319e84"><td class="memItemLeft" align="right" valign="top"><a id="ad6cd380bef9fdf5920b71fa330319e84"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html">PCLVisualizer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:ad6cd380bef9fdf5920b71fa330319e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ecf32dd269b5dd8dc5666d5434e4bc4"><td class="memItemLeft" align="right" valign="top"><a id="a6ecf32dd269b5dd8dc5666d5434e4bc4"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html">PCLVisualizer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a6ecf32dd269b5dd8dc5666d5434e4bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeded810f5cd47a83d0602ec2e3735070"><td class="memItemLeft" align="right" valign="top"><a id="aeded810f5cd47a83d0602ec2e3735070"></a>
typedef <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>GeometryHandler</b></td></tr>
<tr class="separator:aeded810f5cd47a83d0602ec2e3735070"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764afde06850c7178b41fb76b6d7fb54"><td class="memItemLeft" align="right" valign="top"><a id="a764afde06850c7178b41fb76b6d7fb54"></a>
typedef GeometryHandler::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>GeometryHandlerPtr</b></td></tr>
<tr class="separator:a764afde06850c7178b41fb76b6d7fb54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b6fb256e0976f49e379fc61e7024c7e"><td class="memItemLeft" align="right" valign="top"><a id="a2b6fb256e0976f49e379fc61e7024c7e"></a>
typedef GeometryHandler::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>GeometryHandlerConstPtr</b></td></tr>
<tr class="separator:a2b6fb256e0976f49e379fc61e7024c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a685e8f7a67d907175ebaf572ee919bb8"><td class="memItemLeft" align="right" valign="top"><a id="a685e8f7a67d907175ebaf572ee919bb8"></a>
typedef <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ColorHandler</b></td></tr>
<tr class="separator:a685e8f7a67d907175ebaf572ee919bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eb5f09ad9e63f4b91366a38e5ed3486"><td class="memItemLeft" align="right" valign="top"><a id="a7eb5f09ad9e63f4b91366a38e5ed3486"></a>
typedef ColorHandler::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>ColorHandlerPtr</b></td></tr>
<tr class="separator:a7eb5f09ad9e63f4b91366a38e5ed3486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a331740ea41f4b420164ae52e479aaad1"><td class="memItemLeft" align="right" valign="top"><a id="a331740ea41f4b420164ae52e479aaad1"></a>
typedef ColorHandler::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>ColorHandlerConstPtr</b></td></tr>
<tr class="separator:a331740ea41f4b420164ae52e479aaad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a8afc60c209d09ab637fc15684c67d70c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8afc60c209d09ab637fc15684c67d70c">PCLVisualizer</a> (const std::string &amp;name=&quot;&quot;, const bool create_interactor=true)</td></tr>
<tr class="memdesc:a8afc60c209d09ab637fc15684c67d70c"><td class="mdescLeft">&#160;</td><td class="mdescRight">PCL Visualizer constructor.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8afc60c209d09ab637fc15684c67d70c">更多...</a><br /></td></tr>
<tr class="separator:a8afc60c209d09ab637fc15684c67d70c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d7dcec36942a12fa15dbc2a42c0eb4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab1d7dcec36942a12fa15dbc2a42c0eb4">PCLVisualizer</a> (int &amp;argc, char **argv, const std::string &amp;name=&quot;&quot;, <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style.html">PCLVisualizerInteractorStyle</a> *style=PCLVisualizerInteractorStyle::New(), const bool create_interactor=true)</td></tr>
<tr class="memdesc:ab1d7dcec36942a12fa15dbc2a42c0eb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">PCL Visualizer constructor.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab1d7dcec36942a12fa15dbc2a42c0eb4">更多...</a><br /></td></tr>
<tr class="separator:ab1d7dcec36942a12fa15dbc2a42c0eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aeb2f456889108880580e16b4ae025a"><td class="memItemLeft" align="right" valign="top"><a id="a3aeb2f456889108880580e16b4ae025a"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3aeb2f456889108880580e16b4ae025a">~PCLVisualizer</a> ()</td></tr>
<tr class="memdesc:a3aeb2f456889108880580e16b4ae025a"><td class="mdescLeft">&#160;</td><td class="mdescRight">PCL Visualizer destructor. <br /></td></tr>
<tr class="separator:a3aeb2f456889108880580e16b4ae025a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72cae67918479779c88da0e55ec8d264"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a72cae67918479779c88da0e55ec8d264">setFullScreen</a> (bool mode)</td></tr>
<tr class="memdesc:a72cae67918479779c88da0e55ec8d264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/Disabled the underlying window mode to full screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a72cae67918479779c88da0e55ec8d264">更多...</a><br /></td></tr>
<tr class="separator:a72cae67918479779c88da0e55ec8d264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc6af0973c4630d8770b3f18f21e794a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abc6af0973c4630d8770b3f18f21e794a">setWindowName</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:abc6af0973c4630d8770b3f18f21e794a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the visualizer window name.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abc6af0973c4630d8770b3f18f21e794a">更多...</a><br /></td></tr>
<tr class="separator:abc6af0973c4630d8770b3f18f21e794a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfda06df14a88477fb651bd7a34e239b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abfda06df14a88477fb651bd7a34e239b">setWindowBorders</a> (bool mode)</td></tr>
<tr class="memdesc:abfda06df14a88477fb651bd7a34e239b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disable the underlying window borders.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abfda06df14a88477fb651bd7a34e239b">更多...</a><br /></td></tr>
<tr class="separator:abfda06df14a88477fb651bd7a34e239b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8db494c058132fbf5f7212fd6f40dfe7"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8db494c058132fbf5f7212fd6f40dfe7">registerKeyboardCallback</a> (boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;)&gt; cb)</td></tr>
<tr class="memdesc:a8db494c058132fbf5f7212fd6f40dfe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback boost::function for keyboard events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8db494c058132fbf5f7212fd6f40dfe7">更多...</a><br /></td></tr>
<tr class="separator:a8db494c058132fbf5f7212fd6f40dfe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a594112662b806c7989405c5c8e5287a8"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a594112662b806c7989405c5c8e5287a8">registerKeyboardCallback</a> (void(*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;, void *), void *cookie=NULL)</td></tr>
<tr class="memdesc:a594112662b806c7989405c5c8e5287a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for keyboard events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a594112662b806c7989405c5c8e5287a8">更多...</a><br /></td></tr>
<tr class="separator:a594112662b806c7989405c5c8e5287a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28451798279f2c27f19d48a46c3f694f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a28451798279f2c27f19d48a46c3f694f"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a28451798279f2c27f19d48a46c3f694f">registerKeyboardCallback</a> (void(T::*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;, void *), T &amp;instance, void *cookie=NULL)</td></tr>
<tr class="memdesc:a28451798279f2c27f19d48a46c3f694f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for keyboard events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a28451798279f2c27f19d48a46c3f694f">更多...</a><br /></td></tr>
<tr class="separator:a28451798279f2c27f19d48a46c3f694f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2ce79b967d457be9e73112646c0fa7"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa2ce79b967d457be9e73112646c0fa7">registerMouseCallback</a> (boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;)&gt; cb)</td></tr>
<tr class="memdesc:aaa2ce79b967d457be9e73112646c0fa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for mouse events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa2ce79b967d457be9e73112646c0fa7">更多...</a><br /></td></tr>
<tr class="separator:aaa2ce79b967d457be9e73112646c0fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3372891056ceb49dd60ff92bbf16d845"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3372891056ceb49dd60ff92bbf16d845">registerMouseCallback</a> (void(*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;, void *), void *cookie=NULL)</td></tr>
<tr class="memdesc:a3372891056ceb49dd60ff92bbf16d845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for mouse events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3372891056ceb49dd60ff92bbf16d845">更多...</a><br /></td></tr>
<tr class="separator:a3372891056ceb49dd60ff92bbf16d845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7ff9f38e3729b57722f68ecf756c8d0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:af7ff9f38e3729b57722f68ecf756c8d0"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af7ff9f38e3729b57722f68ecf756c8d0">registerMouseCallback</a> (void(T::*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;, void *), T &amp;instance, void *cookie=NULL)</td></tr>
<tr class="memdesc:af7ff9f38e3729b57722f68ecf756c8d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for mouse events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af7ff9f38e3729b57722f68ecf756c8d0">更多...</a><br /></td></tr>
<tr class="separator:af7ff9f38e3729b57722f68ecf756c8d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ad58f7f8f66ced2a31489ac329a94bb"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5ad58f7f8f66ced2a31489ac329a94bb">registerPointPickingCallback</a> (boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;)&gt; cb)</td></tr>
<tr class="memdesc:a5ad58f7f8f66ced2a31489ac329a94bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for point picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5ad58f7f8f66ced2a31489ac329a94bb">更多...</a><br /></td></tr>
<tr class="separator:a5ad58f7f8f66ced2a31489ac329a94bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f57c96f368bb8e41dc65e8528ac9325"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2f57c96f368bb8e41dc65e8528ac9325">registerPointPickingCallback</a> (void(*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;, void *), void *cookie=NULL)</td></tr>
<tr class="memdesc:a2f57c96f368bb8e41dc65e8528ac9325"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for point picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2f57c96f368bb8e41dc65e8528ac9325">更多...</a><br /></td></tr>
<tr class="separator:a2f57c96f368bb8e41dc65e8528ac9325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a0a0500789b3452d1afa674e4fa4659"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3a0a0500789b3452d1afa674e4fa4659"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3a0a0500789b3452d1afa674e4fa4659">registerPointPickingCallback</a> (void(T::*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;, void *), T &amp;instance, void *cookie=NULL)</td></tr>
<tr class="memdesc:a3a0a0500789b3452d1afa674e4fa4659"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for point picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3a0a0500789b3452d1afa674e4fa4659">更多...</a><br /></td></tr>
<tr class="separator:a3a0a0500789b3452d1afa674e4fa4659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4cf564406f60a4efa8169233a7a319"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8b4cf564406f60a4efa8169233a7a319">registerAreaPickingCallback</a> (boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;)&gt; cb)</td></tr>
<tr class="memdesc:a8b4cf564406f60a4efa8169233a7a319"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for area picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8b4cf564406f60a4efa8169233a7a319">更多...</a><br /></td></tr>
<tr class="separator:a8b4cf564406f60a4efa8169233a7a319"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0445f3c59852bff8a9f198de70d4bb77"><td class="memItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0445f3c59852bff8a9f198de70d4bb77">registerAreaPickingCallback</a> (void(*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;, void *), void *cookie=NULL)</td></tr>
<tr class="memdesc:a0445f3c59852bff8a9f198de70d4bb77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for area picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0445f3c59852bff8a9f198de70d4bb77">更多...</a><br /></td></tr>
<tr class="separator:a0445f3c59852bff8a9f198de70d4bb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e79d3a939d7d005cdcdd2605569a8ba"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a0e79d3a939d7d005cdcdd2605569a8ba"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0e79d3a939d7d005cdcdd2605569a8ba">registerAreaPickingCallback</a> (void(T::*callback)(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;, void *), T &amp;instance, void *cookie=NULL)</td></tr>
<tr class="memdesc:a0e79d3a939d7d005cdcdd2605569a8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a callback function for area picking events  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0e79d3a939d7d005cdcdd2605569a8ba">更多...</a><br /></td></tr>
<tr class="separator:a0e79d3a939d7d005cdcdd2605569a8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52243d2e72e3cd3f125b27360b4f8433"><td class="memItemLeft" align="right" valign="top"><a id="a52243d2e72e3cd3f125b27360b4f8433"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a52243d2e72e3cd3f125b27360b4f8433">spin</a> ()</td></tr>
<tr class="memdesc:a52243d2e72e3cd3f125b27360b4f8433"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spin method. Calls the interactor and runs an internal loop. <br /></td></tr>
<tr class="separator:a52243d2e72e3cd3f125b27360b4f8433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a896556f91ba6b45b12a9543a2b397193"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a896556f91ba6b45b12a9543a2b397193">spinOnce</a> (int time=1, bool force_redraw=false)</td></tr>
<tr class="memdesc:a896556f91ba6b45b12a9543a2b397193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spin once method. Calls the interactor and updates the screen once.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a896556f91ba6b45b12a9543a2b397193">更多...</a><br /></td></tr>
<tr class="separator:a896556f91ba6b45b12a9543a2b397193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea914522fc324cbd9a139d2b72461f1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aea914522fc324cbd9a139d2b72461f1f">addOrientationMarkerWidgetAxes</a> (vtkRenderWindowInteractor *interactor)</td></tr>
<tr class="memdesc:aea914522fc324cbd9a139d2b72461f1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a widget which shows an interactive axes display for orientation  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aea914522fc324cbd9a139d2b72461f1f">更多...</a><br /></td></tr>
<tr class="separator:aea914522fc324cbd9a139d2b72461f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8032a6d538d80b5badd1cc0594a72ed9"><td class="memItemLeft" align="right" valign="top"><a id="a8032a6d538d80b5badd1cc0594a72ed9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8032a6d538d80b5badd1cc0594a72ed9">removeOrientationMarkerWidgetAxes</a> ()</td></tr>
<tr class="memdesc:a8032a6d538d80b5badd1cc0594a72ed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the Orientatation Marker Widget so it is removed from the renderer <br /></td></tr>
<tr class="separator:a8032a6d538d80b5badd1cc0594a72ed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cace4bafdfacf96b868ba1bb3c8bc31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6cace4bafdfacf96b868ba1bb3c8bc31">PCL_DEPRECATED</a> (&quot;addCoordinateSystem (scale, viewport) is deprecated, please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a> (scale, id, viewport) with id a unique string identifier.&quot;) void <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(double scale</td></tr>
<tr class="memdesc:a6cace4bafdfacf96b868ba1bb3c8bc31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at 0,0,0.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6cace4bafdfacf96b868ba1bb3c8bc31">更多...</a><br /></td></tr>
<tr class="separator:a6cace4bafdfacf96b868ba1bb3c8bc31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50bd74511f80f9e1192c4896c87688cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a> (double scale=1.0, const std::string &amp;id=&quot;reference&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a50bd74511f80f9e1192c4896c87688cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at 0,0,0.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">更多...</a><br /></td></tr>
<tr class="separator:a50bd74511f80f9e1192c4896c87688cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63ef41adf91d884e17c995787fa38388"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a63ef41adf91d884e17c995787fa38388">PCL_DEPRECATED</a> (&quot;addCoordinateSystem (scale, x, y, z, viewport) is deprecated, please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a> (scale, x, y, z, id, viewport) with id a unique string identifier.&quot;) void <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(double scale</td></tr>
<tr class="memdesc:a63ef41adf91d884e17c995787fa38388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at x, y, z  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a63ef41adf91d884e17c995787fa38388">更多...</a><br /></td></tr>
<tr class="separator:a63ef41adf91d884e17c995787fa38388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab49c9042541132dfc71138c06b26d24e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab49c9042541132dfc71138c06b26d24e">addCoordinateSystem</a> (double scale, float x, float y, float z, const std::string &amp;id=&quot;reference&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ab49c9042541132dfc71138c06b26d24e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at x, y, z  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab49c9042541132dfc71138c06b26d24e">更多...</a><br /></td></tr>
<tr class="separator:ab49c9042541132dfc71138c06b26d24e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a150d6a43470df34af858566cb5a67afb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a150d6a43470df34af858566cb5a67afb">PCL_DEPRECATED</a> (&quot;addCoordinateSystem (scale, t, viewport) is deprecated, please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a> (scale, t, id, viewport) with id a unique string identifier.&quot;) void <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(double scale</td></tr>
<tr class="memdesc:a150d6a43470df34af858566cb5a67afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at x, y, z, Roll,Pitch,Yaw  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a150d6a43470df34af858566cb5a67afb">更多...</a><br /></td></tr>
<tr class="separator:a150d6a43470df34af858566cb5a67afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d311713e64ab39c2093ef81f5d6d30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a32d311713e64ab39c2093ef81f5d6d30">addCoordinateSystem</a> (double scale, const Eigen::Affine3f &amp;t, const std::string &amp;id=&quot;reference&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a32d311713e64ab39c2093ef81f5d6d30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 3D axes describing a coordinate system to screen at x, y, z, Roll,Pitch,Yaw  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a32d311713e64ab39c2093ef81f5d6d30">更多...</a><br /></td></tr>
<tr class="separator:a32d311713e64ab39c2093ef81f5d6d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a181c28461badfdeaa5112f801c0f78c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a181c28461badfdeaa5112f801c0f78c0">PCL_DEPRECATED</a> (&quot;removeCoordinateSystem (viewport) is deprecated, please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a> (id, viewport) with id a unique string identifier.&quot;) bool <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2c4bf3f872837f5a02b21def249640bb">removeCoordinateSystem</a>(int viewport)</td></tr>
<tr class="memdesc:a181c28461badfdeaa5112f801c0f78c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a previously added 3D axes (coordinate system)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a181c28461badfdeaa5112f801c0f78c0">更多...</a><br /></td></tr>
<tr class="separator:a181c28461badfdeaa5112f801c0f78c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c4bf3f872837f5a02b21def249640bb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2c4bf3f872837f5a02b21def249640bb">removeCoordinateSystem</a> (const std::string &amp;id=&quot;reference&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a2c4bf3f872837f5a02b21def249640bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a previously added 3D axes (coordinate system)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2c4bf3f872837f5a02b21def249640bb">更多...</a><br /></td></tr>
<tr class="separator:a2c4bf3f872837f5a02b21def249640bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a163056dd8efe9cf911b697a6b02addbd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a163056dd8efe9cf911b697a6b02addbd">removePointCloud</a> (const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a163056dd8efe9cf911b697a6b02addbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> from screen, based on a given ID.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a163056dd8efe9cf911b697a6b02addbd">更多...</a><br /></td></tr>
<tr class="separator:a163056dd8efe9cf911b697a6b02addbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab78f35ecd7aec5ce0e04a622b8f53886"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab78f35ecd7aec5ce0e04a622b8f53886">removePolygonMesh</a> (const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ab78f35ecd7aec5ce0e04a622b8f53886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> from screen, based on a given ID.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab78f35ecd7aec5ce0e04a622b8f53886">更多...</a><br /></td></tr>
<tr class="separator:ab78f35ecd7aec5ce0e04a622b8f53886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada9b2661ed4b49aeec0bb2102fda04c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ada9b2661ed4b49aeec0bb2102fda04c3">removeShape</a> (const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ada9b2661ed4b49aeec0bb2102fda04c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an added shape from screen (line, polygon, etc.), based on a given ID  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ada9b2661ed4b49aeec0bb2102fda04c3">更多...</a><br /></td></tr>
<tr class="separator:ada9b2661ed4b49aeec0bb2102fda04c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2d5958a4cb64fec03e00096f3a0e1eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac2d5958a4cb64fec03e00096f3a0e1eb">removeText3D</a> (const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ac2d5958a4cb64fec03e00096f3a0e1eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an added 3D text from the scene, based on a given ID  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac2d5958a4cb64fec03e00096f3a0e1eb">更多...</a><br /></td></tr>
<tr class="separator:ac2d5958a4cb64fec03e00096f3a0e1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8deb3d6c61801a1278c641475678b704"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8deb3d6c61801a1278c641475678b704">removeAllPointClouds</a> (int viewport=0)</td></tr>
<tr class="memdesc:a8deb3d6c61801a1278c641475678b704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all point cloud data on screen from the given viewport.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8deb3d6c61801a1278c641475678b704">更多...</a><br /></td></tr>
<tr class="separator:a8deb3d6c61801a1278c641475678b704"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7d86bc003c5ad4c1f630ccd17fd779b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa7d86bc003c5ad4c1f630ccd17fd779b">removeAllShapes</a> (int viewport=0)</td></tr>
<tr class="memdesc:aa7d86bc003c5ad4c1f630ccd17fd779b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all 3D shape data on screen from the given viewport.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa7d86bc003c5ad4c1f630ccd17fd779b">更多...</a><br /></td></tr>
<tr class="separator:aa7d86bc003c5ad4c1f630ccd17fd779b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4909baa4e145f21069d060625317da34"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a4909baa4e145f21069d060625317da34">removeAllCoordinateSystems</a> (int viewport=0)</td></tr>
<tr class="memdesc:a4909baa4e145f21069d060625317da34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all existing 3D axes (coordinate systems)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a4909baa4e145f21069d060625317da34">更多...</a><br /></td></tr>
<tr class="separator:a4909baa4e145f21069d060625317da34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34013d7b668f2e42759c74c58bd4801b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a34013d7b668f2e42759c74c58bd4801b">setBackgroundColor</a> (const double &amp;r, const double &amp;g, const double &amp;b, int viewport=0)</td></tr>
<tr class="memdesc:a34013d7b668f2e42759c74c58bd4801b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the viewport's background color.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a34013d7b668f2e42759c74c58bd4801b">更多...</a><br /></td></tr>
<tr class="separator:a34013d7b668f2e42759c74c58bd4801b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e43d3eaf048b8cd9407658a2739c22b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5e43d3eaf048b8cd9407658a2739c22b">addText</a> (const std::string &amp;text, int xpos, int ypos, const std::string &amp;id=&quot;&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a5e43d3eaf048b8cd9407658a2739c22b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5e43d3eaf048b8cd9407658a2739c22b">更多...</a><br /></td></tr>
<tr class="separator:a5e43d3eaf048b8cd9407658a2739c22b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7f8d9aa3cdb72f79082a925b8b3196"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3a7f8d9aa3cdb72f79082a925b8b3196">addText</a> (const std::string &amp;text, int xpos, int ypos, double r, double g, double b, const std::string &amp;id=&quot;&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a3a7f8d9aa3cdb72f79082a925b8b3196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3a7f8d9aa3cdb72f79082a925b8b3196">更多...</a><br /></td></tr>
<tr class="separator:a3a7f8d9aa3cdb72f79082a925b8b3196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93606247edd980bac7e33f984d0a3391"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a93606247edd980bac7e33f984d0a3391">addText</a> (const std::string &amp;text, int xpos, int ypos, int fontsize, double r, double g, double b, const std::string &amp;id=&quot;&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a93606247edd980bac7e33f984d0a3391"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a93606247edd980bac7e33f984d0a3391">更多...</a><br /></td></tr>
<tr class="separator:a93606247edd980bac7e33f984d0a3391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56e56574ccd4efdc7589d7a61b119089"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a56e56574ccd4efdc7589d7a61b119089">updateText</a> (const std::string &amp;text, int xpos, int ypos, const std::string &amp;id=&quot;&quot;)</td></tr>
<tr class="memdesc:a56e56574ccd4efdc7589d7a61b119089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a56e56574ccd4efdc7589d7a61b119089">更多...</a><br /></td></tr>
<tr class="separator:a56e56574ccd4efdc7589d7a61b119089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ababf3899a9094a9e5b1383c7f4e5f232"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ababf3899a9094a9e5b1383c7f4e5f232">updateText</a> (const std::string &amp;text, int xpos, int ypos, double r, double g, double b, const std::string &amp;id=&quot;&quot;)</td></tr>
<tr class="memdesc:ababf3899a9094a9e5b1383c7f4e5f232"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ababf3899a9094a9e5b1383c7f4e5f232">更多...</a><br /></td></tr>
<tr class="separator:ababf3899a9094a9e5b1383c7f4e5f232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c57d88acb130698de0f9a58bf08e714"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8c57d88acb130698de0f9a58bf08e714">updateText</a> (const std::string &amp;text, int xpos, int ypos, int fontsize, double r, double g, double b, const std::string &amp;id=&quot;&quot;)</td></tr>
<tr class="memdesc:a8c57d88acb130698de0f9a58bf08e714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a text to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8c57d88acb130698de0f9a58bf08e714">更多...</a><br /></td></tr>
<tr class="separator:a8c57d88acb130698de0f9a58bf08e714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a412c27c7c3188c503e1af5d3991c41cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a412c27c7c3188c503e1af5d3991c41cc">updateShapePose</a> (const std::string &amp;id, const Eigen::Affine3f &amp;pose)</td></tr>
<tr class="memdesc:a412c27c7c3188c503e1af5d3991c41cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the pose of an existing shape.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a412c27c7c3188c503e1af5d3991c41cc">更多...</a><br /></td></tr>
<tr class="separator:a412c27c7c3188c503e1af5d3991c41cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a184a5cbd3f15b911567967d1505ba31b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a184a5cbd3f15b911567967d1505ba31b">updateCoordinateSystemPose</a> (const std::string &amp;id, const Eigen::Affine3f &amp;pose)</td></tr>
<tr class="memdesc:a184a5cbd3f15b911567967d1505ba31b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the pose of an existing coordinate system.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a184a5cbd3f15b911567967d1505ba31b">更多...</a><br /></td></tr>
<tr class="separator:a184a5cbd3f15b911567967d1505ba31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a560454addd48366effa0bcafd1edd116"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a560454addd48366effa0bcafd1edd116">updatePointCloudPose</a> (const std::string &amp;id, const Eigen::Affine3f &amp;pose)</td></tr>
<tr class="memdesc:a560454addd48366effa0bcafd1edd116"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the pose of an existing point cloud.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a560454addd48366effa0bcafd1edd116">更多...</a><br /></td></tr>
<tr class="separator:a560454addd48366effa0bcafd1edd116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81eef75fbd6f48f851c5847b75e1f59c"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a81eef75fbd6f48f851c5847b75e1f59c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a81eef75fbd6f48f851c5847b75e1f59c">addText3D</a> (const std::string &amp;text, const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;position, double textScale=1.0, double r=1.0, double g=1.0, double b=1.0, const std::string &amp;id=&quot;&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a81eef75fbd6f48f851c5847b75e1f59c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a 3d text to the scene  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a81eef75fbd6f48f851c5847b75e1f59c">更多...</a><br /></td></tr>
<tr class="separator:a81eef75fbd6f48f851c5847b75e1f59c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf97c77fe52b4db363ddb5890f1b74f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (const std::string &amp;id) const</td></tr>
<tr class="memdesc:abaf97c77fe52b4db363ddb5890f1b74f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the cloud, shape, or coordinate with the given id was already added to this visualizer.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">更多...</a><br /></td></tr>
<tr class="separator:abaf97c77fe52b4db363ddb5890f1b74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b40078a75aba7f01826013ee27e4484"><td class="memTemplParams" colspan="2">template&lt;typename PointNT &gt; </td></tr>
<tr class="memitem:a7b40078a75aba7f01826013ee27e4484"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7b40078a75aba7f01826013ee27e4484">addPointCloudNormals</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;cloud, int level=100, float scale=0.02f, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a7b40078a75aba7f01826013ee27e4484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the estimated surface normals of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7b40078a75aba7f01826013ee27e4484">更多...</a><br /></td></tr>
<tr class="separator:a7b40078a75aba7f01826013ee27e4484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a013791b58208b7baba403f5a1cdcb9a2"><td class="memTemplParams" colspan="2">template&lt;typename PointT , typename PointNT &gt; </td></tr>
<tr class="memitem:a013791b58208b7baba403f5a1cdcb9a2"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a013791b58208b7baba403f5a1cdcb9a2">addPointCloudNormals</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;normals, int level=100, float scale=0.02f, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a013791b58208b7baba403f5a1cdcb9a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the estimated surface normals of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a013791b58208b7baba403f5a1cdcb9a2">更多...</a><br /></td></tr>
<tr class="separator:a013791b58208b7baba403f5a1cdcb9a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa72b633862a7de6a882a9903796a2a0"><td class="memTemplParams" colspan="2">template&lt;typename PointNT &gt; </td></tr>
<tr class="memitem:aaa72b633862a7de6a882a9903796a2a0"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa72b633862a7de6a882a9903796a2a0">addPointCloudPrincipalCurvatures</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;cloud, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_principal_curvatures.html">pcl::PrincipalCurvatures</a> &gt;::ConstPtr &amp;pcs, int level=100, float scale=1.0f, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:aaa72b633862a7de6a882a9903796a2a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the estimated principal curvatures of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa72b633862a7de6a882a9903796a2a0">更多...</a><br /></td></tr>
<tr class="separator:aaa72b633862a7de6a882a9903796a2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90f2d88ed2f9c57bc716c6b1abd4dab3"><td class="memTemplParams" colspan="2">template&lt;typename PointT , typename PointNT &gt; </td></tr>
<tr class="memitem:a90f2d88ed2f9c57bc716c6b1abd4dab3"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a90f2d88ed2f9c57bc716c6b1abd4dab3">addPointCloudPrincipalCurvatures</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;normals, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_principal_curvatures.html">pcl::PrincipalCurvatures</a> &gt;::ConstPtr &amp;pcs, int level=100, float scale=1.0f, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a90f2d88ed2f9c57bc716c6b1abd4dab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the estimated principal curvatures of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a90f2d88ed2f9c57bc716c6b1abd4dab3">更多...</a><br /></td></tr>
<tr class="separator:a90f2d88ed2f9c57bc716c6b1abd4dab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0051e22d9a1503933842510b3fc31467"><td class="memTemplParams" colspan="2">template&lt;typename PointT , typename GradientT &gt; </td></tr>
<tr class="memitem:a0051e22d9a1503933842510b3fc31467"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0051e22d9a1503933842510b3fc31467">addPointCloudIntensityGradients</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; GradientT &gt;::ConstPtr &amp;gradients, int level=100, double scale=1e-6, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a0051e22d9a1503933842510b3fc31467"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the estimated surface intensity gradients of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0051e22d9a1503933842510b3fc31467">更多...</a><br /></td></tr>
<tr class="separator:a0051e22d9a1503933842510b3fc31467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36dbb0c4490a8de4838503dc257ba26a"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a36dbb0c4490a8de4838503dc257ba26a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a36dbb0c4490a8de4838503dc257ba26a">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a36dbb0c4490a8de4838503dc257ba26a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a36dbb0c4490a8de4838503dc257ba26a">更多...</a><br /></td></tr>
<tr class="separator:a36dbb0c4490a8de4838503dc257ba26a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629dbb72b085fa25d382fa982eaefa64"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a629dbb72b085fa25d382fa982eaefa64"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a629dbb72b085fa25d382fa982eaefa64">updatePointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:a629dbb72b085fa25d382fa982eaefa64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZ data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a629dbb72b085fa25d382fa982eaefa64">更多...</a><br /></td></tr>
<tr class="separator:a629dbb72b085fa25d382fa982eaefa64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7ae1c16fca556f85f007b256dd9a313"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:ae7ae1c16fca556f85f007b256dd9a313"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ae7ae1c16fca556f85f007b256dd9a313">updatePointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:ae7ae1c16fca556f85f007b256dd9a313"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZ data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ae7ae1c16fca556f85f007b256dd9a313">更多...</a><br /></td></tr>
<tr class="separator:ae7ae1c16fca556f85f007b256dd9a313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad3dbcb520b9af0d09f03f2467b3f46e"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:aad3dbcb520b9af0d09f03f2467b3f46e"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aad3dbcb520b9af0d09f03f2467b3f46e">updatePointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;color_handler, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:aad3dbcb520b9af0d09f03f2467b3f46e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZ data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aad3dbcb520b9af0d09f03f2467b3f46e">更多...</a><br /></td></tr>
<tr class="separator:aad3dbcb520b9af0d09f03f2467b3f46e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f0930f4129127b62ae8ef6ee475fc4"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a53f0930f4129127b62ae8ef6ee475fc4"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a53f0930f4129127b62ae8ef6ee475fc4">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a53f0930f4129127b62ae8ef6ee475fc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a53f0930f4129127b62ae8ef6ee475fc4">更多...</a><br /></td></tr>
<tr class="separator:a53f0930f4129127b62ae8ef6ee475fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce8843ff8c96da48a1d17b60d3d7368"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:adce8843ff8c96da48a1d17b60d3d7368"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#adce8843ff8c96da48a1d17b60d3d7368">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const GeometryHandlerConstPtr &amp;geometry_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:adce8843ff8c96da48a1d17b60d3d7368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#adce8843ff8c96da48a1d17b60d3d7368">更多...</a><br /></td></tr>
<tr class="separator:adce8843ff8c96da48a1d17b60d3d7368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a707d3e533de111299795028de90d94"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a0a707d3e533de111299795028de90d94"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0a707d3e533de111299795028de90d94">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;color_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a0a707d3e533de111299795028de90d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0a707d3e533de111299795028de90d94">更多...</a><br /></td></tr>
<tr class="separator:a0a707d3e533de111299795028de90d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf65acb9b139891f75a0eb5752af2c41"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:adf65acb9b139891f75a0eb5752af2c41"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#adf65acb9b139891f75a0eb5752af2c41">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const ColorHandlerConstPtr &amp;color_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:adf65acb9b139891f75a0eb5752af2c41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#adf65acb9b139891f75a0eb5752af2c41">更多...</a><br /></td></tr>
<tr class="separator:adf65acb9b139891f75a0eb5752af2c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e33d443abe811c5d412972c0425f244"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a2e33d443abe811c5d412972c0425f244"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2e33d443abe811c5d412972c0425f244">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const GeometryHandlerConstPtr &amp;geometry_handler, const ColorHandlerConstPtr &amp;color_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a2e33d443abe811c5d412972c0425f244"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2e33d443abe811c5d412972c0425f244">更多...</a><br /></td></tr>
<tr class="separator:a2e33d443abe811c5d412972c0425f244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15c4a4ca05173a76852f00f68b59dbee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a15c4a4ca05173a76852f00f68b59dbee">addPointCloud</a> (const pcl::PCLPointCloud2::ConstPtr &amp;cloud, const GeometryHandlerConstPtr &amp;geometry_handler, const ColorHandlerConstPtr &amp;color_handler, const Eigen::Vector4f &amp;sensor_origin, const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a15c4a4ca05173a76852f00f68b59dbee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a15c4a4ca05173a76852f00f68b59dbee">更多...</a><br /></td></tr>
<tr class="separator:a15c4a4ca05173a76852f00f68b59dbee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10b1400998917e992d737f359747eb07"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a10b1400998917e992d737f359747eb07">addPointCloud</a> (const pcl::PCLPointCloud2::ConstPtr &amp;cloud, const GeometryHandlerConstPtr &amp;geometry_handler, const Eigen::Vector4f &amp;sensor_origin, const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a10b1400998917e992d737f359747eb07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a10b1400998917e992d737f359747eb07">更多...</a><br /></td></tr>
<tr class="separator:a10b1400998917e992d737f359747eb07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f60c8de0c7464dfc32ec08b3f4126ec"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8f60c8de0c7464dfc32ec08b3f4126ec">addPointCloud</a> (const pcl::PCLPointCloud2::ConstPtr &amp;cloud, const ColorHandlerConstPtr &amp;color_handler, const Eigen::Vector4f &amp;sensor_origin, const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a8f60c8de0c7464dfc32ec08b3f4126ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8f60c8de0c7464dfc32ec08b3f4126ec">更多...</a><br /></td></tr>
<tr class="separator:a8f60c8de0c7464dfc32ec08b3f4126ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a889c9f81b6637fa34dd3c3b2bd9b95e1"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a889c9f81b6637fa34dd3c3b2bd9b95e1"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a889c9f81b6637fa34dd3c3b2bd9b95e1">addPointCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;color_handler, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a889c9f81b6637fa34dd3c3b2bd9b95e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a889c9f81b6637fa34dd3c3b2bd9b95e1">更多...</a><br /></td></tr>
<tr class="separator:a889c9f81b6637fa34dd3c3b2bd9b95e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8f480bb31825891aa75c1771bc28e63"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ae8f480bb31825891aa75c1771bc28e63">addPointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ae8f480bb31825891aa75c1771bc28e63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_point_x_y_z.html" title="A point structure representing Euclidean xyz coordinates. (SSE friendly)">PointXYZ</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ae8f480bb31825891aa75c1771bc28e63">更多...</a><br /></td></tr>
<tr class="separator:ae8f480bb31825891aa75c1771bc28e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8d5b3726e6c3171d40cf35fd2612205"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab8d5b3726e6c3171d40cf35fd2612205">addPointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ab8d5b3726e6c3171d40cf35fd2612205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html" title="A point structure representing Euclidean xyz coordinates, and the RGB color.">PointXYZRGB</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab8d5b3726e6c3171d40cf35fd2612205">更多...</a><br /></td></tr>
<tr class="separator:ab8d5b3726e6c3171d40cf35fd2612205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19f8a3700b3e248b7d78e7a715280ea0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19f8a3700b3e248b7d78e7a715280ea0">addPointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a19f8a3700b3e248b7d78e7a715280ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html" title="A point structure representing Euclidean xyz coordinates, and the RGBA color.">PointXYZRGBA</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19f8a3700b3e248b7d78e7a715280ea0">更多...</a><br /></td></tr>
<tr class="separator:a19f8a3700b3e248b7d78e7a715280ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c55fe69e60f043d53cf7ec9b12a086c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a4c55fe69e60f043d53cf7ec9b12a086c">addPointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">pcl::PointXYZL</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a4c55fe69e60f043d53cf7ec9b12a086c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_point_x_y_z_l.html">PointXYZL</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a4c55fe69e60f043d53cf7ec9b12a086c">更多...</a><br /></td></tr>
<tr class="separator:a4c55fe69e60f043d53cf7ec9b12a086c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e2193cc3b2e249a70c322f5d3f241e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5e2193cc3b2e249a70c322f5d3f241e9">updatePointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:a5e2193cc3b2e249a70c322f5d3f241e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZ data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5e2193cc3b2e249a70c322f5d3f241e9">更多...</a><br /></td></tr>
<tr class="separator:a5e2193cc3b2e249a70c322f5d3f241e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b87f30abc395556c997c320d1c674c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7b87f30abc395556c997c320d1c674c6">updatePointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:a7b87f30abc395556c997c320d1c674c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZRGB data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7b87f30abc395556c997c320d1c674c6">更多...</a><br /></td></tr>
<tr class="separator:a7b87f30abc395556c997c320d1c674c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad52d632938d7f3e28df02c2b5a623ce7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ad52d632938d7f3e28df02c2b5a623ce7">updatePointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:ad52d632938d7f3e28df02c2b5a623ce7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZRGBA data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ad52d632938d7f3e28df02c2b5a623ce7">更多...</a><br /></td></tr>
<tr class="separator:ad52d632938d7f3e28df02c2b5a623ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0941fd0aedead6abb254f7d00a13c33"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac0941fd0aedead6abb254f7d00a13c33">updatePointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">pcl::PointXYZL</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:ac0941fd0aedead6abb254f7d00a13c33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the XYZL data for an existing cloud object id on screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac0941fd0aedead6abb254f7d00a13c33">更多...</a><br /></td></tr>
<tr class="separator:ac0941fd0aedead6abb254f7d00a13c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04b488bead8ef944b22690be9f768e24"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a04b488bead8ef944b22690be9f768e24">addPolygonMesh</a> (const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;polymesh, const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a04b488bead8ef944b22690be9f768e24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a04b488bead8ef944b22690be9f768e24">更多...</a><br /></td></tr>
<tr class="separator:a04b488bead8ef944b22690be9f768e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41454a3339e4ad13337901e2b5e55d2f"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a41454a3339e4ad13337901e2b5e55d2f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a41454a3339e4ad13337901e2b5e55d2f">addPolygonMesh</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const std::vector&lt; <a class="el" href="structpcl_1_1_vertices.html">pcl::Vertices</a> &gt; &amp;vertices, const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a41454a3339e4ad13337901e2b5e55d2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a41454a3339e4ad13337901e2b5e55d2f">更多...</a><br /></td></tr>
<tr class="separator:a41454a3339e4ad13337901e2b5e55d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae07d5848ec01103ec7c6a256d040463"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:aae07d5848ec01103ec7c6a256d040463"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aae07d5848ec01103ec7c6a256d040463">updatePolygonMesh</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const std::vector&lt; <a class="el" href="structpcl_1_1_vertices.html">pcl::Vertices</a> &gt; &amp;vertices, const std::string &amp;id=&quot;polygon&quot;)</td></tr>
<tr class="memdesc:aae07d5848ec01103ec7c6a256d040463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object on screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aae07d5848ec01103ec7c6a256d040463">更多...</a><br /></td></tr>
<tr class="separator:aae07d5848ec01103ec7c6a256d040463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31209d704ccb98cb61a615d6e5526b0d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a31209d704ccb98cb61a615d6e5526b0d">updatePolygonMesh</a> (const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;polymesh, const std::string &amp;id=&quot;polygon&quot;)</td></tr>
<tr class="memdesc:a31209d704ccb98cb61a615d6e5526b0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object on screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a31209d704ccb98cb61a615d6e5526b0d">更多...</a><br /></td></tr>
<tr class="separator:a31209d704ccb98cb61a615d6e5526b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdd609fc73307b6536b9676f02c1206e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#acdd609fc73307b6536b9676f02c1206e">addPolylineFromPolygonMesh</a> (const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;polymesh, const std::string &amp;id=&quot;polyline&quot;, int viewport=0)</td></tr>
<tr class="memdesc:acdd609fc73307b6536b9676f02c1206e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a Polygonline from a polygonMesh object to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#acdd609fc73307b6536b9676f02c1206e">更多...</a><br /></td></tr>
<tr class="separator:acdd609fc73307b6536b9676f02c1206e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c20fdb241ea003aff44e9d22c665acc"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a3c20fdb241ea003aff44e9d22c665acc"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3c20fdb241ea003aff44e9d22c665acc">addCorrespondences</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;source_points, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;target_points, const std::vector&lt; int &gt; &amp;correspondences, const std::string &amp;id=&quot;correspondences&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a3c20fdb241ea003aff44e9d22c665acc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the specified correspondences to the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3c20fdb241ea003aff44e9d22c665acc">更多...</a><br /></td></tr>
<tr class="separator:a3c20fdb241ea003aff44e9d22c665acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aa779bbc5e6a2aebf4b72e66676f04f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a1aa779bbc5e6a2aebf4b72e66676f04f">addTextureMesh</a> (const <a class="el" href="structpcl_1_1_texture_mesh.html">pcl::TextureMesh</a> &amp;polymesh, const std::string &amp;id=&quot;texture&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a1aa779bbc5e6a2aebf4b72e66676f04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="structpcl_1_1_texture_mesh.html">TextureMesh</a> object to screen  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a1aa779bbc5e6a2aebf4b72e66676f04f">更多...</a><br /></td></tr>
<tr class="separator:a1aa779bbc5e6a2aebf4b72e66676f04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af60f2f8c70d8eed2729694771b9e3333"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:af60f2f8c70d8eed2729694771b9e3333"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af60f2f8c70d8eed2729694771b9e3333">addCorrespondences</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;source_points, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;target_points, const pcl::Correspondences &amp;correspondences, int nth, const std::string &amp;id=&quot;correspondences&quot;, int viewport=0, bool overwrite=false)</td></tr>
<tr class="memdesc:af60f2f8c70d8eed2729694771b9e3333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the specified correspondences to the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af60f2f8c70d8eed2729694771b9e3333">更多...</a><br /></td></tr>
<tr class="separator:af60f2f8c70d8eed2729694771b9e3333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21f903d704546752c4211d826b637c7a"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a21f903d704546752c4211d826b637c7a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a21f903d704546752c4211d826b637c7a">addCorrespondences</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;source_points, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;target_points, const pcl::Correspondences &amp;correspondences, const std::string &amp;id=&quot;correspondences&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a21f903d704546752c4211d826b637c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the specified correspondences to the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a21f903d704546752c4211d826b637c7a">更多...</a><br /></td></tr>
<tr class="separator:a21f903d704546752c4211d826b637c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6522961411e6db8f000279392dfae35"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:af6522961411e6db8f000279392dfae35"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af6522961411e6db8f000279392dfae35">updateCorrespondences</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;source_points, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;target_points, const pcl::Correspondences &amp;correspondences, int nth, const std::string &amp;id=&quot;correspondences&quot;, int viewport=0)</td></tr>
<tr class="memdesc:af6522961411e6db8f000279392dfae35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the specified correspondences to the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af6522961411e6db8f000279392dfae35">更多...</a><br /></td></tr>
<tr class="separator:af6522961411e6db8f000279392dfae35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af76f96a296f3cce6835b53758d3bffb7"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:af76f96a296f3cce6835b53758d3bffb7"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af76f96a296f3cce6835b53758d3bffb7">updateCorrespondences</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;source_points, const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;target_points, const pcl::Correspondences &amp;correspondences, const std::string &amp;id=&quot;correspondences&quot;, int viewport=0)</td></tr>
<tr class="memdesc:af76f96a296f3cce6835b53758d3bffb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the specified correspondences to the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af76f96a296f3cce6835b53758d3bffb7">更多...</a><br /></td></tr>
<tr class="separator:af76f96a296f3cce6835b53758d3bffb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af84f676282ae73187e6c3997fcd80d9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af84f676282ae73187e6c3997fcd80d9f">removeCorrespondences</a> (const std::string &amp;id=&quot;correspondences&quot;, int viewport=0)</td></tr>
<tr class="memdesc:af84f676282ae73187e6c3997fcd80d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the specified correspondences from the display.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af84f676282ae73187e6c3997fcd80d9f">更多...</a><br /></td></tr>
<tr class="separator:af84f676282ae73187e6c3997fcd80d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d59115a46e6ad99d3d06fc60e0dfbec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9d59115a46e6ad99d3d06fc60e0dfbec">getColorHandlerIndex</a> (const std::string &amp;id)</td></tr>
<tr class="memdesc:a9d59115a46e6ad99d3d06fc60e0dfbec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the color handler index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9d59115a46e6ad99d3d06fc60e0dfbec">更多...</a><br /></td></tr>
<tr class="separator:a9d59115a46e6ad99d3d06fc60e0dfbec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83d9ce86450f060d13ff74f3241bc482"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a83d9ce86450f060d13ff74f3241bc482">getGeometryHandlerIndex</a> (const std::string &amp;id)</td></tr>
<tr class="memdesc:a83d9ce86450f060d13ff74f3241bc482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the geometry handler index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a83d9ce86450f060d13ff74f3241bc482">更多...</a><br /></td></tr>
<tr class="separator:a83d9ce86450f060d13ff74f3241bc482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3352461e9b339cb02b279262f9b1055e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3352461e9b339cb02b279262f9b1055e">updateColorHandlerIndex</a> (const std::string &amp;id, int index)</td></tr>
<tr class="memdesc:a3352461e9b339cb02b279262f9b1055e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update/set the color index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3352461e9b339cb02b279262f9b1055e">更多...</a><br /></td></tr>
<tr class="separator:a3352461e9b339cb02b279262f9b1055e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a003ffc7d15828faecd0404f4251b56a8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a003ffc7d15828faecd0404f4251b56a8">setPointCloudRenderingProperties</a> (int property, double val1, double val2, double val3, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a003ffc7d15828faecd0404f4251b56a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> (3x values - e.g., <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a>)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a003ffc7d15828faecd0404f4251b56a8">更多...</a><br /></td></tr>
<tr class="separator:a003ffc7d15828faecd0404f4251b56a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af23c9bbc0af139ab3829143e7bf59c47"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af23c9bbc0af139ab3829143e7bf59c47">setPointCloudRenderingProperties</a> (int property, double val1, double val2, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:af23c9bbc0af139ab3829143e7bf59c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> (2x values - e.g., LUT minmax values)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af23c9bbc0af139ab3829143e7bf59c47">更多...</a><br /></td></tr>
<tr class="separator:af23c9bbc0af139ab3829143e7bf59c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac545eecb62dd0023b68cf1e0cc88b73e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac545eecb62dd0023b68cf1e0cc88b73e">setPointCloudRenderingProperties</a> (int property, double value, const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ac545eecb62dd0023b68cf1e0cc88b73e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a>  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac545eecb62dd0023b68cf1e0cc88b73e">更多...</a><br /></td></tr>
<tr class="separator:ac545eecb62dd0023b68cf1e0cc88b73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acde8be1004cd2fd43d8e4287bd726252"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#acde8be1004cd2fd43d8e4287bd726252">getPointCloudRenderingProperties</a> (int property, double &amp;value, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:acde8be1004cd2fd43d8e4287bd726252"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a>  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#acde8be1004cd2fd43d8e4287bd726252">更多...</a><br /></td></tr>
<tr class="separator:acde8be1004cd2fd43d8e4287bd726252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a563125f9ecd29bd1e4c355f5f580483a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a563125f9ecd29bd1e4c355f5f580483a">setPointCloudSelected</a> (const bool selected, const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:a563125f9ecd29bd1e4c355f5f580483a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set whether the point cloud is selected or not  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a563125f9ecd29bd1e4c355f5f580483a">更多...</a><br /></td></tr>
<tr class="separator:a563125f9ecd29bd1e4c355f5f580483a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab6916c53720b4102b5dd4a7ce003907"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aab6916c53720b4102b5dd4a7ce003907">setShapeRenderingProperties</a> (int property, double value, const std::string &amp;id, int viewport=0)</td></tr>
<tr class="memdesc:aab6916c53720b4102b5dd4a7ce003907"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering properties of a shape  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aab6916c53720b4102b5dd4a7ce003907">更多...</a><br /></td></tr>
<tr class="separator:aab6916c53720b4102b5dd4a7ce003907"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7706715bdaa84f385f5bb28732d81b6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab7706715bdaa84f385f5bb28732d81b6">setShapeRenderingProperties</a> (int property, double val1, double val2, double val3, const std::string &amp;id, int viewport=0)</td></tr>
<tr class="memdesc:ab7706715bdaa84f385f5bb28732d81b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering properties of a shape (3x values - e.g., <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a>)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab7706715bdaa84f385f5bb28732d81b6">更多...</a><br /></td></tr>
<tr class="separator:ab7706715bdaa84f385f5bb28732d81b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75da0851b954bca814d5c4fec0a8fa7f"><td class="memItemLeft" align="right" valign="top"><a id="a75da0851b954bca814d5c4fec0a8fa7f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a75da0851b954bca814d5c4fec0a8fa7f">wasStopped</a> () const</td></tr>
<tr class="memdesc:a75da0851b954bca814d5c4fec0a8fa7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true when the user tried to close the window <br /></td></tr>
<tr class="separator:a75da0851b954bca814d5c4fec0a8fa7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adea7f8c28147597913a5051f9dedcec8"><td class="memItemLeft" align="right" valign="top"><a id="adea7f8c28147597913a5051f9dedcec8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#adea7f8c28147597913a5051f9dedcec8">resetStoppedFlag</a> ()</td></tr>
<tr class="memdesc:adea7f8c28147597913a5051f9dedcec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the stopped flag back to false <br /></td></tr>
<tr class="separator:adea7f8c28147597913a5051f9dedcec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0027de047edb88ae60afe6d39993ed2a"><td class="memItemLeft" align="right" valign="top"><a id="a0027de047edb88ae60afe6d39993ed2a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0027de047edb88ae60afe6d39993ed2a">close</a> ()</td></tr>
<tr class="memdesc:a0027de047edb88ae60afe6d39993ed2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the interaction and close the visualizaton window. <br /></td></tr>
<tr class="separator:a0027de047edb88ae60afe6d39993ed2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058ee34b64ae1a1e2852e19c86a208be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a058ee34b64ae1a1e2852e19c86a208be">createViewPort</a> (double xmin, double ymin, double xmax, double ymax, int &amp;viewport)</td></tr>
<tr class="memdesc:a058ee34b64ae1a1e2852e19c86a208be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new viewport from [xmin,ymin] -&gt; [xmax,ymax].  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a058ee34b64ae1a1e2852e19c86a208be">更多...</a><br /></td></tr>
<tr class="separator:a058ee34b64ae1a1e2852e19c86a208be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67460d005b094f96f447114ce3e25000"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a67460d005b094f96f447114ce3e25000">createViewPortCamera</a> (const int viewport)</td></tr>
<tr class="memdesc:a67460d005b094f96f447114ce3e25000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new separate camera for the given viewport.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a67460d005b094f96f447114ce3e25000">更多...</a><br /></td></tr>
<tr class="separator:a67460d005b094f96f447114ce3e25000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53bdfc5812684721a5f47ff7da42f5c8"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a53bdfc5812684721a5f47ff7da42f5c8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a53bdfc5812684721a5f47ff7da42f5c8">addPolygon</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, double r, double g, double b, const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a53bdfc5812684721a5f47ff7da42f5c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a polygon (polyline) that represents the input point cloud (connects all points in order)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a53bdfc5812684721a5f47ff7da42f5c8">更多...</a><br /></td></tr>
<tr class="separator:a53bdfc5812684721a5f47ff7da42f5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05dd41c59b8323e9b5153aab7c45e1d4"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a05dd41c59b8323e9b5153aab7c45e1d4"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a05dd41c59b8323e9b5153aab7c45e1d4">addPolygon</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a05dd41c59b8323e9b5153aab7c45e1d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a polygon (polyline) that represents the input point cloud (connects all points in order)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a05dd41c59b8323e9b5153aab7c45e1d4">更多...</a><br /></td></tr>
<tr class="separator:a05dd41c59b8323e9b5153aab7c45e1d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34eb31933462ec68c91adf216aecdd57"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a34eb31933462ec68c91adf216aecdd57"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a34eb31933462ec68c91adf216aecdd57">addPolygon</a> (const <a class="el" href="classpcl_1_1_planar_polygon.html">pcl::PlanarPolygon</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;polygon, double r, double g, double b, const std::string &amp;id=&quot;polygon&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a34eb31933462ec68c91adf216aecdd57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a planar polygon that represents the input point cloud (connects all points in order)  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a34eb31933462ec68c91adf216aecdd57">更多...</a><br /></td></tr>
<tr class="separator:a34eb31933462ec68c91adf216aecdd57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa788c98f62fbf379abfc3b03550ecab5"><td class="memTemplParams" colspan="2">template&lt;typename P1 , typename P2 &gt; </td></tr>
<tr class="memitem:aa788c98f62fbf379abfc3b03550ecab5"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa788c98f62fbf379abfc3b03550ecab5">addLine</a> (const P1 &amp;pt1, const P2 &amp;pt2, const std::string &amp;id=&quot;line&quot;, int viewport=0)</td></tr>
<tr class="memdesc:aa788c98f62fbf379abfc3b03550ecab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line segment from two points  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa788c98f62fbf379abfc3b03550ecab5">更多...</a><br /></td></tr>
<tr class="separator:aa788c98f62fbf379abfc3b03550ecab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10864bcc375cad47986a3601fbcd2e51"><td class="memTemplParams" colspan="2">template&lt;typename P1 , typename P2 &gt; </td></tr>
<tr class="memitem:a10864bcc375cad47986a3601fbcd2e51"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a10864bcc375cad47986a3601fbcd2e51">addLine</a> (const P1 &amp;pt1, const P2 &amp;pt2, double r, double g, double b, const std::string &amp;id=&quot;line&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a10864bcc375cad47986a3601fbcd2e51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line segment from two points  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a10864bcc375cad47986a3601fbcd2e51">更多...</a><br /></td></tr>
<tr class="separator:a10864bcc375cad47986a3601fbcd2e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90e704438b073458d7b1d6ebe54a9c2d"><td class="memTemplParams" colspan="2">template&lt;typename P1 , typename P2 &gt; </td></tr>
<tr class="memitem:a90e704438b073458d7b1d6ebe54a9c2d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a90e704438b073458d7b1d6ebe54a9c2d">addArrow</a> (const P1 &amp;pt1, const P2 &amp;pt2, double r, double g, double b, const std::string &amp;id=&quot;arrow&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a90e704438b073458d7b1d6ebe54a9c2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line arrow segment between two points, and display the distance between them  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a90e704438b073458d7b1d6ebe54a9c2d">更多...</a><br /></td></tr>
<tr class="separator:a90e704438b073458d7b1d6ebe54a9c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba95dcf30c94ce32d4ba3f70abb0983a"><td class="memTemplParams" colspan="2">template&lt;typename P1 , typename P2 &gt; </td></tr>
<tr class="memitem:aba95dcf30c94ce32d4ba3f70abb0983a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aba95dcf30c94ce32d4ba3f70abb0983a">addArrow</a> (const P1 &amp;pt1, const P2 &amp;pt2, double r, double g, double b, bool display_length, const std::string &amp;id=&quot;arrow&quot;, int viewport=0)</td></tr>
<tr class="memdesc:aba95dcf30c94ce32d4ba3f70abb0983a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line arrow segment between two points, and (optionally) display the distance between them  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aba95dcf30c94ce32d4ba3f70abb0983a">更多...</a><br /></td></tr>
<tr class="separator:aba95dcf30c94ce32d4ba3f70abb0983a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a260af85c66b36018c12cc56fe6aae8c2"><td class="memTemplParams" colspan="2">template&lt;typename P1 , typename P2 &gt; </td></tr>
<tr class="memitem:a260af85c66b36018c12cc56fe6aae8c2"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a260af85c66b36018c12cc56fe6aae8c2">addArrow</a> (const P1 &amp;pt1, const P2 &amp;pt2, double r_line, double g_line, double b_line, double r_text, double g_text, double b_text, const std::string &amp;id=&quot;arrow&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a260af85c66b36018c12cc56fe6aae8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line arrow segment between two points, and display the distance between them in a given color  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a260af85c66b36018c12cc56fe6aae8c2">更多...</a><br /></td></tr>
<tr class="separator:a260af85c66b36018c12cc56fe6aae8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19fb5e883c70c32e1486e924469217f3"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a19fb5e883c70c32e1486e924469217f3"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19fb5e883c70c32e1486e924469217f3">addSphere</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;center, double radius, const std::string &amp;id=&quot;sphere&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a19fb5e883c70c32e1486e924469217f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a sphere shape from a point and a radius  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19fb5e883c70c32e1486e924469217f3">更多...</a><br /></td></tr>
<tr class="separator:a19fb5e883c70c32e1486e924469217f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8ad46c3a2adb617ffe20f3f3351dcde"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:ac8ad46c3a2adb617ffe20f3f3351dcde"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac8ad46c3a2adb617ffe20f3f3351dcde">addSphere</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;center, double radius, double r, double g, double b, const std::string &amp;id=&quot;sphere&quot;, int viewport=0)</td></tr>
<tr class="memdesc:ac8ad46c3a2adb617ffe20f3f3351dcde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a sphere shape from a point and a radius  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac8ad46c3a2adb617ffe20f3f3351dcde">更多...</a><br /></td></tr>
<tr class="separator:ac8ad46c3a2adb617ffe20f3f3351dcde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8562fd9611c985f3dfcca9acce8a5050"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a8562fd9611c985f3dfcca9acce8a5050"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8562fd9611c985f3dfcca9acce8a5050">updateSphere</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;center, double radius, double r, double g, double b, const std::string &amp;id=&quot;sphere&quot;)</td></tr>
<tr class="memdesc:a8562fd9611c985f3dfcca9acce8a5050"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update an existing sphere shape from a point and a radius  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8562fd9611c985f3dfcca9acce8a5050">更多...</a><br /></td></tr>
<tr class="separator:a8562fd9611c985f3dfcca9acce8a5050"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58291bf910615c76d14859978007f72a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a58291bf910615c76d14859978007f72a">addModelFromPolyData</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; polydata, const std::string &amp;id=&quot;PolyData&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a58291bf910615c76d14859978007f72a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a vtkPolydata as a mesh  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a58291bf910615c76d14859978007f72a">更多...</a><br /></td></tr>
<tr class="separator:a58291bf910615c76d14859978007f72a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9f20a99bb9a2facdeaf3b440e5e2b89"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af9f20a99bb9a2facdeaf3b440e5e2b89">addModelFromPolyData</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; polydata, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkTransform &gt; transform, const std::string &amp;id=&quot;PolyData&quot;, int viewport=0)</td></tr>
<tr class="memdesc:af9f20a99bb9a2facdeaf3b440e5e2b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a vtkPolydata as a mesh  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af9f20a99bb9a2facdeaf3b440e5e2b89">更多...</a><br /></td></tr>
<tr class="separator:af9f20a99bb9a2facdeaf3b440e5e2b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fd34e390a1aaf244b2ebd9ae7263a02"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8fd34e390a1aaf244b2ebd9ae7263a02">addModelFromPLYFile</a> (const std::string &amp;filename, const std::string &amp;id=&quot;PLYModel&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a8fd34e390a1aaf244b2ebd9ae7263a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a PLYmodel as a mesh  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8fd34e390a1aaf244b2ebd9ae7263a02">更多...</a><br /></td></tr>
<tr class="separator:a8fd34e390a1aaf244b2ebd9ae7263a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65ca2b5b468f5232de86143ba47cedda"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a65ca2b5b468f5232de86143ba47cedda">addModelFromPLYFile</a> (const std::string &amp;filename, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkTransform &gt; transform, const std::string &amp;id=&quot;PLYModel&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a65ca2b5b468f5232de86143ba47cedda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a PLYmodel as a mesh and applies given transformation  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a65ca2b5b468f5232de86143ba47cedda">更多...</a><br /></td></tr>
<tr class="separator:a65ca2b5b468f5232de86143ba47cedda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef6238199505d3b522f099e84a5444de"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aef6238199505d3b522f099e84a5444de">addCylinder</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;cylinder&quot;, int viewport=0)</td></tr>
<tr class="memdesc:aef6238199505d3b522f099e84a5444de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cylinder from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aef6238199505d3b522f099e84a5444de">更多...</a><br /></td></tr>
<tr class="separator:aef6238199505d3b522f099e84a5444de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affdb5a5daae78bed40e42b9343bbd075"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#affdb5a5daae78bed40e42b9343bbd075">addSphere</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;sphere&quot;, int viewport=0)</td></tr>
<tr class="memdesc:affdb5a5daae78bed40e42b9343bbd075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a sphere from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#affdb5a5daae78bed40e42b9343bbd075">更多...</a><br /></td></tr>
<tr class="separator:affdb5a5daae78bed40e42b9343bbd075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fd2b99b85da61df8b58980bdb6b0f41"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5fd2b99b85da61df8b58980bdb6b0f41">addLine</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;line&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a5fd2b99b85da61df8b58980bdb6b0f41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a line from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5fd2b99b85da61df8b58980bdb6b0f41">更多...</a><br /></td></tr>
<tr class="separator:a5fd2b99b85da61df8b58980bdb6b0f41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27a459da46f56faed4b44ef1c57bbbca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a27a459da46f56faed4b44ef1c57bbbca">addPlane</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;plane&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a27a459da46f56faed4b44ef1c57bbbca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a plane from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a27a459da46f56faed4b44ef1c57bbbca">更多...</a><br /></td></tr>
<tr class="separator:a27a459da46f56faed4b44ef1c57bbbca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7995ea4e636debb36f79050c70e09d58"><td class="memItemLeft" align="right" valign="top"><a id="a7995ea4e636debb36f79050c70e09d58"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>addPlane</b> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, double x, double y, double z, const std::string &amp;id=&quot;plane&quot;, int viewport=0)</td></tr>
<tr class="separator:a7995ea4e636debb36f79050c70e09d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211c12fd304127f21e1419506f9eaf5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6211c12fd304127f21e1419506f9eaf5">addCircle</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;circle&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a6211c12fd304127f21e1419506f9eaf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a circle from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6211c12fd304127f21e1419506f9eaf5">更多...</a><br /></td></tr>
<tr class="separator:a6211c12fd304127f21e1419506f9eaf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a816a9b13fb66e92bfe551009e901dd4e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a816a9b13fb66e92bfe551009e901dd4e">addCone</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;cone&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a816a9b13fb66e92bfe551009e901dd4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cone from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a816a9b13fb66e92bfe551009e901dd4e">更多...</a><br /></td></tr>
<tr class="separator:a816a9b13fb66e92bfe551009e901dd4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa55f97ba784826552c9584d407014c78"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa55f97ba784826552c9584d407014c78">addCube</a> (const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;coefficients, const std::string &amp;id=&quot;cube&quot;, int viewport=0)</td></tr>
<tr class="memdesc:aa55f97ba784826552c9584d407014c78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cube from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa55f97ba784826552c9584d407014c78">更多...</a><br /></td></tr>
<tr class="separator:aa55f97ba784826552c9584d407014c78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e805f7508dcefb2cf6fa3eb817c1432"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6e805f7508dcefb2cf6fa3eb817c1432">addCube</a> (const Eigen::Vector3f &amp;translation, const Eigen::Quaternionf &amp;rotation, double width, double height, double depth, const std::string &amp;id=&quot;cube&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a6e805f7508dcefb2cf6fa3eb817c1432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cube from a set of given model coefficients  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6e805f7508dcefb2cf6fa3eb817c1432">更多...</a><br /></td></tr>
<tr class="separator:a6e805f7508dcefb2cf6fa3eb817c1432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4d4cf26e3a97aad4d86b49ed865dd1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6e4d4cf26e3a97aad4d86b49ed865dd1">addCube</a> (float x_min, float x_max, float y_min, float y_max, float z_min, float z_max, double r=1.0, double g=1.0, double b=1.0, const std::string &amp;id=&quot;cube&quot;, int viewport=0)</td></tr>
<tr class="memdesc:a6e4d4cf26e3a97aad4d86b49ed865dd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cube  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6e4d4cf26e3a97aad4d86b49ed865dd1">更多...</a><br /></td></tr>
<tr class="separator:a6e4d4cf26e3a97aad4d86b49ed865dd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a454d1f51d050c034e25f7ebc53f7112f"><td class="memItemLeft" align="right" valign="top"><a id="a454d1f51d050c034e25f7ebc53f7112f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a454d1f51d050c034e25f7ebc53f7112f">setRepresentationToSurfaceForAllActors</a> ()</td></tr>
<tr class="memdesc:a454d1f51d050c034e25f7ebc53f7112f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the visual representation for all actors to surface representation. <br /></td></tr>
<tr class="separator:a454d1f51d050c034e25f7ebc53f7112f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0e6d8c830d229c025471c868fffe2c6"><td class="memItemLeft" align="right" valign="top"><a id="af0e6d8c830d229c025471c868fffe2c6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af0e6d8c830d229c025471c868fffe2c6">setRepresentationToPointsForAllActors</a> ()</td></tr>
<tr class="memdesc:af0e6d8c830d229c025471c868fffe2c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the visual representation for all actors to points representation. <br /></td></tr>
<tr class="separator:af0e6d8c830d229c025471c868fffe2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46b63c6b4529c4e3c8eda04a079e2dbe"><td class="memItemLeft" align="right" valign="top"><a id="a46b63c6b4529c4e3c8eda04a079e2dbe"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a46b63c6b4529c4e3c8eda04a079e2dbe">setRepresentationToWireframeForAllActors</a> ()</td></tr>
<tr class="memdesc:a46b63c6b4529c4e3c8eda04a079e2dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the visual representation for all actors to wireframe representation. <br /></td></tr>
<tr class="separator:a46b63c6b4529c4e3c8eda04a079e2dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9438cc0301c631b9ddcf036cbf6bc1c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9438cc0301c631b9ddcf036cbf6bc1c0">setShowFPS</a> (bool show_fps)</td></tr>
<tr class="memdesc:a9438cc0301c631b9ddcf036cbf6bc1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the 2D overlay text showing the framerate of the window is displayed or not.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9438cc0301c631b9ddcf036cbf6bc1c0">更多...</a><br /></td></tr>
<tr class="separator:a9438cc0301c631b9ddcf036cbf6bc1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80bac12c2a49e033e96fa797a4ffa911"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a80bac12c2a49e033e96fa797a4ffa911">renderView</a> (int xres, int yres, <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::Ptr &amp;cloud)</td></tr>
<tr class="memdesc:a80bac12c2a49e033e96fa797a4ffa911"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renders a virtual scene as seen from the camera viewpoint and returns the rendered point cloud. ATT: This method will only render the scene if only on viewport exists. Otherwise, returns an empty point cloud and exits immediately.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a80bac12c2a49e033e96fa797a4ffa911">更多...</a><br /></td></tr>
<tr class="separator:a80bac12c2a49e033e96fa797a4ffa911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0811ecc37374264450d8aafbc88b42dc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0811ecc37374264450d8aafbc88b42dc">renderViewTesselatedSphere</a> (int xres, int yres, <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::CloudVectorType &amp;cloud, std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;poses, std::vector&lt; float &gt; &amp;enthropies, int tesselation_level, float view_angle=45, float radius_sphere=1, bool use_vertices=true)</td></tr>
<tr class="memdesc:a0811ecc37374264450d8aafbc88b42dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The purpose of this method is to render a CAD model added to the visualizer from different viewpoints in order to simulate partial views of model. The viewpoint locations are the vertices of a tessellated sphere build from an icosaheadron. The tessellation parameter controls how many times the triangles of the original icosahedron are divided to approximate the sphere and thus the number of partial view generated for a model, with a tesselation_level of 0, 12 views are generated if use_vertices=true and 20 views if use_vertices=false  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0811ecc37374264450d8aafbc88b42dc">更多...</a><br /></td></tr>
<tr class="separator:a0811ecc37374264450d8aafbc88b42dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacca94387d2eeb3d76e054e2055cf999"><td class="memItemLeft" align="right" valign="top"><a id="aacca94387d2eeb3d76e054e2055cf999"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aacca94387d2eeb3d76e054e2055cf999">initCameraParameters</a> ()</td></tr>
<tr class="memdesc:aacca94387d2eeb3d76e054e2055cf999"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize camera parameters with some default values. <br /></td></tr>
<tr class="separator:aacca94387d2eeb3d76e054e2055cf999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a952c8bbe747026bc41cf6d1f038e69af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a952c8bbe747026bc41cf6d1f038e69af">getCameraParameters</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:a952c8bbe747026bc41cf6d1f038e69af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for camera parameters at the command line and set them internally.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a952c8bbe747026bc41cf6d1f038e69af">更多...</a><br /></td></tr>
<tr class="separator:a952c8bbe747026bc41cf6d1f038e69af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a939d25b9e09c722de6cb12e2c9f37290"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a939d25b9e09c722de6cb12e2c9f37290">loadCameraParameters</a> (const std::string &amp;file)</td></tr>
<tr class="memdesc:a939d25b9e09c722de6cb12e2c9f37290"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load camera parameters from a camera parameters file.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a939d25b9e09c722de6cb12e2c9f37290">更多...</a><br /></td></tr>
<tr class="separator:a939d25b9e09c722de6cb12e2c9f37290"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a564610bf568b4cfb257a1176b04154bf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a564610bf568b4cfb257a1176b04154bf">cameraParamsSet</a> () const</td></tr>
<tr class="memdesc:a564610bf568b4cfb257a1176b04154bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the camera parameters were manually loaded.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a564610bf568b4cfb257a1176b04154bf">更多...</a><br /></td></tr>
<tr class="separator:a564610bf568b4cfb257a1176b04154bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a666a92ada0763bec359b8f1551c9efd5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a666a92ada0763bec359b8f1551c9efd5">cameraFileLoaded</a> () const</td></tr>
<tr class="memdesc:a666a92ada0763bec359b8f1551c9efd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a camera file were automatically loaded.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a666a92ada0763bec359b8f1551c9efd5">更多...</a><br /></td></tr>
<tr class="separator:a666a92ada0763bec359b8f1551c9efd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ca045887418d2ad61b5f5504a3d3546"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6ca045887418d2ad61b5f5504a3d3546">getCameraFile</a> () const</td></tr>
<tr class="memdesc:a6ca045887418d2ad61b5f5504a3d3546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera file for camera parameter saving/restoring.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6ca045887418d2ad61b5f5504a3d3546">更多...</a><br /></td></tr>
<tr class="separator:a6ca045887418d2ad61b5f5504a3d3546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3728c9188488be0a97361cfb8c39bdfc"><td class="memItemLeft" align="right" valign="top"><a id="a3728c9188488be0a97361cfb8c39bdfc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3728c9188488be0a97361cfb8c39bdfc">updateCamera</a> ()</td></tr>
<tr class="memdesc:a3728c9188488be0a97361cfb8c39bdfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update camera parameters and render. <br /></td></tr>
<tr class="separator:a3728c9188488be0a97361cfb8c39bdfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab369536ebc426b52dc11bfa4c230f259"><td class="memItemLeft" align="right" valign="top"><a id="ab369536ebc426b52dc11bfa4c230f259"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab369536ebc426b52dc11bfa4c230f259">resetCamera</a> ()</td></tr>
<tr class="memdesc:ab369536ebc426b52dc11bfa4c230f259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset camera parameters and render. <br /></td></tr>
<tr class="separator:ab369536ebc426b52dc11bfa4c230f259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56e6ac666017221a6ad88d5cef948ac5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a56e6ac666017221a6ad88d5cef948ac5">resetCameraViewpoint</a> (const std::string &amp;id=&quot;cloud&quot;)</td></tr>
<tr class="memdesc:a56e6ac666017221a6ad88d5cef948ac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the camera direction from {0, 0, 0} to the center_{x, y, z} of a given dataset.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a56e6ac666017221a6ad88d5cef948ac5">更多...</a><br /></td></tr>
<tr class="separator:a56e6ac666017221a6ad88d5cef948ac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2232b62d2dd1caead79df190731b810c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2232b62d2dd1caead79df190731b810c">setCameraPosition</a> (double pos_x, double pos_y, double pos_z, double view_x, double view_y, double view_z, double up_x, double up_y, double up_z, int viewport=0)</td></tr>
<tr class="memdesc:a2232b62d2dd1caead79df190731b810c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera pose given by position, viewpoint and up vector  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2232b62d2dd1caead79df190731b810c">更多...</a><br /></td></tr>
<tr class="separator:a2232b62d2dd1caead79df190731b810c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2039927ec8f5a9771202f269987ec72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab2039927ec8f5a9771202f269987ec72">setCameraPosition</a> (double pos_x, double pos_y, double pos_z, double up_x, double up_y, double up_z, int viewport=0)</td></tr>
<tr class="memdesc:ab2039927ec8f5a9771202f269987ec72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera location and viewup according to the given arguments  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab2039927ec8f5a9771202f269987ec72">更多...</a><br /></td></tr>
<tr class="separator:ab2039927ec8f5a9771202f269987ec72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc05571bae25da7189c33167ce34cf7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#afc05571bae25da7189c33167ce34cf7f">setCameraParameters</a> (const Eigen::Matrix3f &amp;intrinsics, const Eigen::Matrix4f &amp;extrinsics, int viewport=0)</td></tr>
<tr class="memdesc:afc05571bae25da7189c33167ce34cf7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera parameters via an intrinsics and and extrinsics matrix  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#afc05571bae25da7189c33167ce34cf7f">更多...</a><br /></td></tr>
<tr class="separator:afc05571bae25da7189c33167ce34cf7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a912662671175fc1d3899d576d94d0d07"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a912662671175fc1d3899d576d94d0d07">setCameraParameters</a> (const <a class="el" href="classpcl_1_1visualization_1_1_camera.html">Camera</a> &amp;camera, int viewport=0)</td></tr>
<tr class="memdesc:a912662671175fc1d3899d576d94d0d07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera parameters by given a full camera data structure.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a912662671175fc1d3899d576d94d0d07">更多...</a><br /></td></tr>
<tr class="separator:a912662671175fc1d3899d576d94d0d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1e26f78e677d2df2230e3919d6bab55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa1e26f78e677d2df2230e3919d6bab55">setCameraClipDistances</a> (double near, double far, int viewport=0)</td></tr>
<tr class="memdesc:aa1e26f78e677d2df2230e3919d6bab55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera clipping distances.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa1e26f78e677d2df2230e3919d6bab55">更多...</a><br /></td></tr>
<tr class="separator:aa1e26f78e677d2df2230e3919d6bab55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5144690885b51333a9bcb94bf89b5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7e5144690885b51333a9bcb94bf89b5a">setCameraFieldOfView</a> (double fovy, int viewport=0)</td></tr>
<tr class="memdesc:a7e5144690885b51333a9bcb94bf89b5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the camera vertical field of view.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a7e5144690885b51333a9bcb94bf89b5a">更多...</a><br /></td></tr>
<tr class="separator:a7e5144690885b51333a9bcb94bf89b5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aa248202ca9512ccad0082edca7c29b"><td class="memItemLeft" align="right" valign="top"><a id="a6aa248202ca9512ccad0082edca7c29b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6aa248202ca9512ccad0082edca7c29b">getCameras</a> (std::vector&lt; <a class="el" href="classpcl_1_1visualization_1_1_camera.html">Camera</a> &gt; &amp;cameras)</td></tr>
<tr class="memdesc:a6aa248202ca9512ccad0082edca7c29b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current camera parameters. <br /></td></tr>
<tr class="separator:a6aa248202ca9512ccad0082edca7c29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae87cdb4c22d7b37389acd09e1a68e434"><td class="memItemLeft" align="right" valign="top"><a id="ae87cdb4c22d7b37389acd09e1a68e434"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ae87cdb4c22d7b37389acd09e1a68e434">getViewerPose</a> (int viewport=0)</td></tr>
<tr class="memdesc:ae87cdb4c22d7b37389acd09e1a68e434"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current viewing pose. <br /></td></tr>
<tr class="separator:ae87cdb4c22d7b37389acd09e1a68e434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6fbe63d727c9f910c0fed5b373b88e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac6fbe63d727c9f910c0fed5b373b88e4">saveScreenshot</a> (const std::string &amp;file)</td></tr>
<tr class="memdesc:ac6fbe63d727c9f910c0fed5b373b88e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the current rendered image to disk, as a PNG screenshot.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac6fbe63d727c9f910c0fed5b373b88e4">更多...</a><br /></td></tr>
<tr class="separator:ac6fbe63d727c9f910c0fed5b373b88e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a321501a8be8e27a097b44b705fc2edc1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a321501a8be8e27a097b44b705fc2edc1">saveCameraParameters</a> (const std::string &amp;file)</td></tr>
<tr class="memdesc:a321501a8be8e27a097b44b705fc2edc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the camera parameters to disk, as a .cam file.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a321501a8be8e27a097b44b705fc2edc1">更多...</a><br /></td></tr>
<tr class="separator:a321501a8be8e27a097b44b705fc2edc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab35727cb51cd9cc55b6144e169876511"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab35727cb51cd9cc55b6144e169876511">getCameraParameters</a> (<a class="el" href="classpcl_1_1visualization_1_1_camera.html">Camera</a> &amp;camera)</td></tr>
<tr class="memdesc:ab35727cb51cd9cc55b6144e169876511"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters and save them to a <a class="el" href="classpcl_1_1visualization_1_1_camera.html" title="Camera class holds a set of camera parameters together with the window pos/size.">pcl::visualization::Camera</a>.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab35727cb51cd9cc55b6144e169876511">更多...</a><br /></td></tr>
<tr class="separator:ab35727cb51cd9cc55b6144e169876511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad2ec68908b49a096d2d17a48fb80eec"><td class="memItemLeft" align="right" valign="top"><a id="aad2ec68908b49a096d2d17a48fb80eec"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkRenderWindow &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aad2ec68908b49a096d2d17a48fb80eec">getRenderWindow</a> ()</td></tr>
<tr class="memdesc:aad2ec68908b49a096d2d17a48fb80eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the underlying VTK Render <a class="el" href="classpcl_1_1visualization_1_1_window.html">Window</a> used. <br /></td></tr>
<tr class="separator:aad2ec68908b49a096d2d17a48fb80eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e317f5b7a019b511af1907c1af23a9b"><td class="memItemLeft" align="right" valign="top"><a id="a2e317f5b7a019b511af1907c1af23a9b"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkRendererCollection &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2e317f5b7a019b511af1907c1af23a9b">getRendererCollection</a> ()</td></tr>
<tr class="memdesc:a2e317f5b7a019b511af1907c1af23a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the underlying VTK Renderer Collection. <br /></td></tr>
<tr class="separator:a2e317f5b7a019b511af1907c1af23a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ce5468b4fbac6ef5f403ae284c8551"><td class="memItemLeft" align="right" valign="top"><a id="a25ce5468b4fbac6ef5f403ae284c8551"></a>
CloudActorMapPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a25ce5468b4fbac6ef5f403ae284c8551">getCloudActorMap</a> ()</td></tr>
<tr class="memdesc:a25ce5468b4fbac6ef5f403ae284c8551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the CloudActorMap this visualizer uses. <br /></td></tr>
<tr class="separator:a25ce5468b4fbac6ef5f403ae284c8551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70a3c89a532249d61db9aa8884eb5ad4"><td class="memItemLeft" align="right" valign="top"><a id="a70a3c89a532249d61db9aa8884eb5ad4"></a>
ShapeActorMapPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a70a3c89a532249d61db9aa8884eb5ad4">getShapeActorMap</a> ()</td></tr>
<tr class="memdesc:a70a3c89a532249d61db9aa8884eb5ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the ShapeActorMap this visualizer uses. <br /></td></tr>
<tr class="separator:a70a3c89a532249d61db9aa8884eb5ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0932d49a78ea102e248781a631294499"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0932d49a78ea102e248781a631294499">setPosition</a> (int x, int y)</td></tr>
<tr class="memdesc:a0932d49a78ea102e248781a631294499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the position in screen coordinates.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0932d49a78ea102e248781a631294499">更多...</a><br /></td></tr>
<tr class="separator:a0932d49a78ea102e248781a631294499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c3ed261cb86632935f594d2b61535ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8c3ed261cb86632935f594d2b61535ff">setSize</a> (int xw, int yw)</td></tr>
<tr class="memdesc:a8c3ed261cb86632935f594d2b61535ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the window size in screen coordinates.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8c3ed261cb86632935f594d2b61535ff">更多...</a><br /></td></tr>
<tr class="separator:a8c3ed261cb86632935f594d2b61535ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a937a988cd3bd473f11120f1386edc411"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a937a988cd3bd473f11120f1386edc411">setUseVbos</a> (bool use_vbos)</td></tr>
<tr class="memdesc:a937a988cd3bd473f11120f1386edc411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use Vertex Buffer Objects renderers. This is an optimization for the obsolete OpenGL backend. Modern OpenGL2 backend (VTK ≥ 6.3) uses vertex buffer objects by default, transparently for the user.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a937a988cd3bd473f11120f1386edc411">更多...</a><br /></td></tr>
<tr class="separator:a937a988cd3bd473f11120f1386edc411"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a786724207171c8181a5ff10d2956b875"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a786724207171c8181a5ff10d2956b875">setLookUpTableID</a> (const std::string id)</td></tr>
<tr class="memdesc:a786724207171c8181a5ff10d2956b875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the ID of a cloud or shape to be used for LUT display  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a786724207171c8181a5ff10d2956b875">更多...</a><br /></td></tr>
<tr class="separator:a786724207171c8181a5ff10d2956b875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4529a722b6dd359a6eed063d5c8a4ef"><td class="memItemLeft" align="right" valign="top"><a id="aa4529a722b6dd359a6eed063d5c8a4ef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa4529a722b6dd359a6eed063d5c8a4ef">createInteractor</a> ()</td></tr>
<tr class="memdesc:aa4529a722b6dd359a6eed063d5c8a4ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the internal Interactor object. <br /></td></tr>
<tr class="separator:aa4529a722b6dd359a6eed063d5c8a4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f2ab0047663bcd23e48cf39b74145de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9f2ab0047663bcd23e48cf39b74145de">setupInteractor</a> (vtkRenderWindowInteractor *iren, vtkRenderWindow *win)</td></tr>
<tr class="memdesc:a9f2ab0047663bcd23e48cf39b74145de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up our unique PCL interactor style for a given vtkRenderWindowInteractor object attached to a given vtkRenderWindow  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a9f2ab0047663bcd23e48cf39b74145de">更多...</a><br /></td></tr>
<tr class="separator:a9f2ab0047663bcd23e48cf39b74145de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26b785bcbdf1aaec1db1e1cfa15aa5f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a26b785bcbdf1aaec1db1e1cfa15aa5f4">setupInteractor</a> (vtkRenderWindowInteractor *iren, vtkRenderWindow *win, vtkInteractorStyle *style)</td></tr>
<tr class="memdesc:a26b785bcbdf1aaec1db1e1cfa15aa5f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> with custom interactor style for a given vtkRenderWindowInteractor object attached to a given vtkRenderWindow  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a26b785bcbdf1aaec1db1e1cfa15aa5f4">更多...</a><br /></td></tr>
<tr class="separator:a26b785bcbdf1aaec1db1e1cfa15aa5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc75e076355905b0f6dabb44debc5466"><td class="memItemLeft" align="right" valign="top"><a id="afc75e076355905b0f6dabb44debc5466"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style.html">PCLVisualizerInteractorStyle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#afc75e076355905b0f6dabb44debc5466">getInteractorStyle</a> ()</td></tr>
<tr class="memdesc:afc75e076355905b0f6dabb44debc5466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the current interactor style used. <br /></td></tr>
<tr class="separator:afc75e076355905b0f6dabb44debc5466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a781b5aa716c19b5fa488757fef0b9091"><td class="memTemplParams" colspan="2"><a id="a781b5aa716c19b5fa488757fef0b9091"></a>
template&lt;typename PointNT &gt; </td></tr>
<tr class="memitem:a781b5aa716c19b5fa488757fef0b9091"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>addPointCloudPrincipalCurvatures</b> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;cloud, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_principal_curvatures.html">pcl::PrincipalCurvatures</a> &gt;::ConstPtr &amp;pcs, int level, float scale, const std::string &amp;id, int viewport)</td></tr>
<tr class="separator:a781b5aa716c19b5fa488757fef0b9091"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:a19ffbabe8b9e443944a340b3503c27df"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (const Eigen::Matrix4f &amp;m, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;vtk_matrix)</td></tr>
<tr class="memdesc:a19ffbabe8b9e443944a340b3503c27df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Eigen::Matrix4f to vtkMatrix4x4  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">更多...</a><br /></td></tr>
<tr class="separator:a19ffbabe8b9e443944a340b3503c27df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74fc7ab5f8f8e3664556081fa6883004"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a74fc7ab5f8f8e3664556081fa6883004">convertToVtkMatrix</a> (const Eigen::Vector4f &amp;origin, const Eigen::Quaternion&lt; float &gt; &amp;orientation, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;vtk_matrix)</td></tr>
<tr class="memdesc:a74fc7ab5f8f8e3664556081fa6883004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert origin and orientation to vtkMatrix4x4  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a74fc7ab5f8f8e3664556081fa6883004">更多...</a><br /></td></tr>
<tr class="separator:a74fc7ab5f8f8e3664556081fa6883004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accebdc4ad4d25b071a0cf9daa1094086"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#accebdc4ad4d25b071a0cf9daa1094086">convertToEigenMatrix</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;vtk_matrix, Eigen::Matrix4f &amp;m)</td></tr>
<tr class="memdesc:accebdc4ad4d25b071a0cf9daa1094086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert vtkMatrix4x4 to an Eigen4f  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#accebdc4ad4d25b071a0cf9daa1094086">更多...</a><br /></td></tr>
<tr class="separator:accebdc4ad4d25b071a0cf9daa1094086"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public 属性</h2></td></tr>
<tr class="memitem:a89d490104516e721788c1375b5c12c53"><td class="memItemLeft" align="right" valign="top"><a id="a89d490104516e721788c1375b5c12c53"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>viewport</b></td></tr>
<tr class="separator:a89d490104516e721788c1375b5c12c53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19cb0ee8fefdc84f397bdab8751ac823"><td class="memItemLeft" align="right" valign="top"><a id="a19cb0ee8fefdc84f397bdab8751ac823"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>x</b></td></tr>
<tr class="separator:a19cb0ee8fefdc84f397bdab8751ac823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b401d8617e3bad75a99491810a71df"><td class="memItemLeft" align="right" valign="top"><a id="aa9b401d8617e3bad75a99491810a71df"></a>
float float&#160;</td><td class="memItemRight" valign="bottom"><b>y</b></td></tr>
<tr class="separator:aa9b401d8617e3bad75a99491810a71df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef511548b291736b7434af2373922739"><td class="memItemLeft" align="right" valign="top"><a id="aef511548b291736b7434af2373922739"></a>
float float float&#160;</td><td class="memItemRight" valign="bottom"><b>z</b></td></tr>
<tr class="separator:aef511548b291736b7434af2373922739"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a65d291fabf2755e5235419d34c91b1"><td class="memItemLeft" align="right" valign="top"><a id="a2a65d291fabf2755e5235419d34c91b1"></a>
float float float int&#160;</td><td class="memItemRight" valign="bottom"><b>viewport</b></td></tr>
<tr class="separator:a2a65d291fabf2755e5235419d34c91b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200724260b01a2494d9aebceef719a7e"><td class="memItemLeft" align="right" valign="top"><a id="a200724260b01a2494d9aebceef719a7e"></a>
const Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>t</b></td></tr>
<tr class="separator:a200724260b01a2494d9aebceef719a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8100bf706d527de77d1f68ad241e94a"><td class="memItemLeft" align="right" valign="top"><a id="ad8100bf706d527de77d1f68ad241e94a"></a>
const Eigen::Affine3f int&#160;</td><td class="memItemRight" valign="bottom"><b>viewport</b></td></tr>
<tr class="separator:ad8100bf706d527de77d1f68ad241e94a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a2428c58716579e02649801eda15ceb01"><td class="memItemLeft" align="right" valign="top"><a id="a2428c58716579e02649801eda15ceb01"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkRenderWindowInteractor &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2428c58716579e02649801eda15ceb01">interactor_</a></td></tr>
<tr class="memdesc:a2428c58716579e02649801eda15ceb01"><td class="mdescLeft">&#160;</td><td class="mdescRight">The render window interactor. <br /></td></tr>
<tr class="separator:a2428c58716579e02649801eda15ceb01"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a3d9fe46ae2020e73cb5ed747b6ead5f1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3d9fe46ae2020e73cb5ed747b6ead5f1">removeActorFromRenderer</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkLODActor &gt; &amp;actor, int viewport=0)</td></tr>
<tr class="memdesc:a3d9fe46ae2020e73cb5ed747b6ead5f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Removes a vtk actor from the screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3d9fe46ae2020e73cb5ed747b6ead5f1">更多...</a><br /></td></tr>
<tr class="separator:a3d9fe46ae2020e73cb5ed747b6ead5f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace98baef3c972a5f9bda7493efdac339"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ace98baef3c972a5f9bda7493efdac339">removeActorFromRenderer</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkActor &gt; &amp;actor, int viewport=0)</td></tr>
<tr class="memdesc:ace98baef3c972a5f9bda7493efdac339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Removes a vtk actor from the screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ace98baef3c972a5f9bda7493efdac339">更多...</a><br /></td></tr>
<tr class="separator:ace98baef3c972a5f9bda7493efdac339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceae35b37cead83c2e609a28e473a293"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkProp &gt; &amp;actor, int viewport=0)</td></tr>
<tr class="memdesc:aceae35b37cead83c2e609a28e473a293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Adds a vtk actor to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">更多...</a><br /></td></tr>
<tr class="separator:aceae35b37cead83c2e609a28e473a293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57b11f60d3fda3dea929749bcaf20e01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a57b11f60d3fda3dea929749bcaf20e01">removeActorFromRenderer</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkProp &gt; &amp;actor, int viewport=0)</td></tr>
<tr class="memdesc:a57b11f60d3fda3dea929749bcaf20e01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Adds a vtk actor to screen.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a57b11f60d3fda3dea929749bcaf20e01">更多...</a><br /></td></tr>
<tr class="separator:a57b11f60d3fda3dea929749bcaf20e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac15689c03d40f25c24be925e0d302948"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkDataSet &gt; &amp;data, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkActor &gt; &amp;actor, bool use_scalars=true)</td></tr>
<tr class="memdesc:ac15689c03d40f25c24be925e0d302948"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Creates a vtk actor from a vtk polydata object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">更多...</a><br /></td></tr>
<tr class="separator:ac15689c03d40f25c24be925e0d302948"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af141de9f310021d057407363ee0fb9b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af141de9f310021d057407363ee0fb9b3">createActorFromVTKDataSet</a> (const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkDataSet &gt; &amp;data, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkLODActor &gt; &amp;actor, bool use_scalars=true)</td></tr>
<tr class="memdesc:af141de9f310021d057407363ee0fb9b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method. Creates a vtk actor from a vtk polydata object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#af141de9f310021d057407363ee0fb9b3">更多...</a><br /></td></tr>
<tr class="separator:af141de9f310021d057407363ee0fb9b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a596ed7f68d3a48b0c16ff0e3141e2a59"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a596ed7f68d3a48b0c16ff0e3141e2a59"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a596ed7f68d3a48b0c16ff0e3141e2a59">convertPointCloudToVTKPolyData</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;polydata, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;initcells)</td></tr>
<tr class="memdesc:a596ed7f68d3a48b0c16ff0e3141e2a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a596ed7f68d3a48b0c16ff0e3141e2a59">更多...</a><br /></td></tr>
<tr class="separator:a596ed7f68d3a48b0c16ff0e3141e2a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b617a4ed966632827fe853d6904996a"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a0b617a4ed966632827fe853d6904996a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0b617a4ed966632827fe853d6904996a">convertPointCloudToVTKPolyData</a> (const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;polydata, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;initcells)</td></tr>
<tr class="memdesc:a0b617a4ed966632827fe853d6904996a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a0b617a4ed966632827fe853d6904996a">更多...</a><br /></td></tr>
<tr class="separator:a0b617a4ed966632827fe853d6904996a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a355e5308dfa99f3c637f0cb40b4b7bb7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a355e5308dfa99f3c637f0cb40b4b7bb7">convertPointCloudToVTKPolyData</a> (const GeometryHandlerConstPtr &amp;geometry_handler, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;polydata, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;initcells)</td></tr>
<tr class="memdesc:a355e5308dfa99f3c637f0cb40b4b7bb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a355e5308dfa99f3c637f0cb40b4b7bb7">更多...</a><br /></td></tr>
<tr class="separator:a355e5308dfa99f3c637f0cb40b4b7bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6107059bfc93543dceb1f88c6f1312ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">updateCells</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;cells, <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;initcells, vtkIdType nr_points)</td></tr>
<tr class="memdesc:a6107059bfc93543dceb1f88c6f1312ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates a set of cells (vtkIdTypeArray) if the number of points in a cloud changes  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">更多...</a><br /></td></tr>
<tr class="separator:a6107059bfc93543dceb1f88c6f1312ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749041b9375495588a3e0406e3afec1f"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a749041b9375495588a3e0406e3afec1f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;color_handler, const std::string &amp;id, int viewport, const Eigen::Vector4f &amp;sensor_origin=Eigen::Vector4f(0, 0, 0, 0), const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation=Eigen::Quaternion&lt; float &gt;(1, 0, 0, 0))</td></tr>
<tr class="memdesc:a749041b9375495588a3e0406e3afec1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">更多...</a><br /></td></tr>
<tr class="separator:a749041b9375495588a3e0406e3afec1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add7b161ed3e8a0476ba5644010e3301b"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:add7b161ed3e8a0476ba5644010e3301b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#add7b161ed3e8a0476ba5644010e3301b">fromHandlersToScreen</a> (const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;geometry_handler, const ColorHandlerConstPtr &amp;color_handler, const std::string &amp;id, int viewport, const Eigen::Vector4f &amp;sensor_origin=Eigen::Vector4f(0, 0, 0, 0), const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation=Eigen::Quaternion&lt; float &gt;(1, 0, 0, 0))</td></tr>
<tr class="memdesc:add7b161ed3e8a0476ba5644010e3301b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#add7b161ed3e8a0476ba5644010e3301b">更多...</a><br /></td></tr>
<tr class="separator:add7b161ed3e8a0476ba5644010e3301b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93c0b3daa672759bc8b81814e854813a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a93c0b3daa672759bc8b81814e854813a">fromHandlersToScreen</a> (const GeometryHandlerConstPtr &amp;geometry_handler, const ColorHandlerConstPtr &amp;color_handler, const std::string &amp;id, int viewport, const Eigen::Vector4f &amp;sensor_origin=Eigen::Vector4f(0, 0, 0, 0), const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation=Eigen::Quaternion&lt; float &gt;(1, 0, 0, 0))</td></tr>
<tr class="memdesc:a93c0b3daa672759bc8b81814e854813a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a93c0b3daa672759bc8b81814e854813a">更多...</a><br /></td></tr>
<tr class="separator:a93c0b3daa672759bc8b81814e854813a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1760149f341ff2ea722e0f0cd033b09d"><td class="memTemplParams" colspan="2">template&lt;typename PointT &gt; </td></tr>
<tr class="memitem:a1760149f341ff2ea722e0f0cd033b09d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a1760149f341ff2ea722e0f0cd033b09d">fromHandlersToScreen</a> (const GeometryHandlerConstPtr &amp;geometry_handler, const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;color_handler, const std::string &amp;id, int viewport, const Eigen::Vector4f &amp;sensor_origin=Eigen::Vector4f(0, 0, 0, 0), const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation=Eigen::Quaternion&lt; float &gt;(1, 0, 0, 0))</td></tr>
<tr class="memdesc:a1760149f341ff2ea722e0f0cd033b09d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a1760149f341ff2ea722e0f0cd033b09d">更多...</a><br /></td></tr>
<tr class="separator:a1760149f341ff2ea722e0f0cd033b09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a562d1232dd90f24511786a7220973f05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">allocVtkPolyData</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkAppendPolyData &gt; &amp;polydata)</td></tr>
<tr class="memdesc:a562d1232dd90f24511786a7220973f05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new polydata smartpointer. Internal  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">更多...</a><br /></td></tr>
<tr class="separator:a562d1232dd90f24511786a7220973f05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf67756162b77a0fbd3aa5abb1e988ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaf67756162b77a0fbd3aa5abb1e988ec">allocVtkPolyData</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;polydata)</td></tr>
<tr class="memdesc:aaf67756162b77a0fbd3aa5abb1e988ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new polydata smartpointer. Internal  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaf67756162b77a0fbd3aa5abb1e988ec">更多...</a><br /></td></tr>
<tr class="separator:aaf67756162b77a0fbd3aa5abb1e988ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac12c859ad53f63012e46ecd826d9f56d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac12c859ad53f63012e46ecd826d9f56d">allocVtkUnstructuredGrid</a> (<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkUnstructuredGrid &gt; &amp;polydata)</td></tr>
<tr class="memdesc:ac12c859ad53f63012e46ecd826d9f56d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new unstructured grid smartpointer. Internal  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac12c859ad53f63012e46ecd826d9f56d">更多...</a><br /></td></tr>
<tr class="separator:ac12c859ad53f63012e46ecd826d9f56d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7dddda55c760aec1df2b34783ad894"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2a7dddda55c760aec1df2b34783ad894">getTransformationMatrix</a> (const Eigen::Vector4f &amp;origin, const Eigen::Quaternion&lt; float &gt; &amp;orientation, Eigen::Matrix4f &amp;transformation)</td></tr>
<tr class="memdesc:a2a7dddda55c760aec1df2b34783ad894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform the point cloud viewpoint to a transformation matrix  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a2a7dddda55c760aec1df2b34783ad894">更多...</a><br /></td></tr>
<tr class="separator:a2a7dddda55c760aec1df2b34783ad894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac69ac5e1fc2af1a9d36cbf11df85437e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac69ac5e1fc2af1a9d36cbf11df85437e">textureFromTexMaterial</a> (const <a class="el" href="structpcl_1_1_tex_material.html">pcl::TexMaterial</a> &amp;tex_mat, vtkTexture *vtk_tex) const</td></tr>
<tr class="memdesc:ac69ac5e1fc2af1a9d36cbf11df85437e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills a vtkTexture structure from <a class="el" href="structpcl_1_1_tex_material.html">pcl::TexMaterial</a>.  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac69ac5e1fc2af1a9d36cbf11df85437e">更多...</a><br /></td></tr>
<tr class="separator:ac69ac5e1fc2af1a9d36cbf11df85437e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81416a53a7aedefde3afd0109cb57cf8"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a81416a53a7aedefde3afd0109cb57cf8">getUniqueCameraFile</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:a81416a53a7aedefde3afd0109cb57cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera file for camera parameter saving/restoring from command line. <a class="el" href="classpcl_1_1visualization_1_1_camera.html" title="Camera class holds a set of camera parameters together with the window pos/size.">Camera</a> filename is calculated using sha1 value of all pathes of input .pcd files  <a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a81416a53a7aedefde3afd0109cb57cf8">更多...</a><br /></td></tr>
<tr class="separator:a81416a53a7aedefde3afd0109cb57cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:afbb626bcf4a06c58b01b1a8f4576ba50"><td class="memItemLeft" align="right" valign="top"><a id="afbb626bcf4a06c58b01b1a8f4576ba50"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; <a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_f_p_s_callback.html">FPSCallback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#afbb626bcf4a06c58b01b1a8f4576ba50">update_fps_</a></td></tr>
<tr class="memdesc:afbb626bcf4a06c58b01b1a8f4576ba50"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_f_p_s_callback.html">FPSCallback</a> object for the current visualizer. <br /></td></tr>
<tr class="separator:afbb626bcf4a06c58b01b1a8f4576ba50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94feadd13962acfeb979ed306cede2d7"><td class="memItemLeft" align="right" valign="top"><a id="a94feadd13962acfeb979ed306cede2d7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a94feadd13962acfeb979ed306cede2d7">stopped_</a></td></tr>
<tr class="memdesc:a94feadd13962acfeb979ed306cede2d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to false if the interaction loop is running. <br /></td></tr>
<tr class="separator:a94feadd13962acfeb979ed306cede2d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2abf1c81ff785442d5087e38631fd6d"><td class="memItemLeft" align="right" valign="top"><a id="ab2abf1c81ff785442d5087e38631fd6d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ab2abf1c81ff785442d5087e38631fd6d">timer_id_</a></td></tr>
<tr class="memdesc:ab2abf1c81ff785442d5087e38631fd6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global timer ID. Used in destructor only. <br /></td></tr>
<tr class="separator:ab2abf1c81ff785442d5087e38631fd6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65aad85903aca4d570f8716f3051f61f"><td class="memItemLeft" align="right" valign="top"><a id="a65aad85903aca4d570f8716f3051f61f"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; <a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_exit_main_loop_timer_callback.html">ExitMainLoopTimerCallback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a65aad85903aca4d570f8716f3051f61f">exit_main_loop_timer_callback_</a></td></tr>
<tr class="memdesc:a65aad85903aca4d570f8716f3051f61f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback object enabling us to leave the main loop, when a timer fires. <br /></td></tr>
<tr class="separator:a65aad85903aca4d570f8716f3051f61f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b672280e7669496676255c4e3d8b1fe"><td class="memItemLeft" align="right" valign="top"><a id="a5b672280e7669496676255c4e3d8b1fe"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; <a class="el" href="structpcl_1_1visualization_1_1_p_c_l_visualizer_1_1_exit_callback.html">ExitCallback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>exit_callback_</b></td></tr>
<tr class="separator:a5b672280e7669496676255c4e3d8b1fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45bf60aa2da1c1517b95192da3e9045f"><td class="memItemLeft" align="right" valign="top"><a id="a45bf60aa2da1c1517b95192da3e9045f"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkRendererCollection &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a45bf60aa2da1c1517b95192da3e9045f">rens_</a></td></tr>
<tr class="memdesc:a45bf60aa2da1c1517b95192da3e9045f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The collection of renderers used. <br /></td></tr>
<tr class="separator:a45bf60aa2da1c1517b95192da3e9045f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac13a8aecfa42a9bda98b8c1df18ce65a"><td class="memItemLeft" align="right" valign="top"><a id="ac13a8aecfa42a9bda98b8c1df18ce65a"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkRenderWindow &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac13a8aecfa42a9bda98b8c1df18ce65a">win_</a></td></tr>
<tr class="memdesc:ac13a8aecfa42a9bda98b8c1df18ce65a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The render window. <br /></td></tr>
<tr class="separator:ac13a8aecfa42a9bda98b8c1df18ce65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69fac516ca34d25600cf2c96573320cc"><td class="memItemLeft" align="right" valign="top"><a id="a69fac516ca34d25600cf2c96573320cc"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style.html">PCLVisualizerInteractorStyle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a69fac516ca34d25600cf2c96573320cc">style_</a></td></tr>
<tr class="memdesc:a69fac516ca34d25600cf2c96573320cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The render window interactor style. <br /></td></tr>
<tr class="separator:a69fac516ca34d25600cf2c96573320cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66cfd9ec06e2aca25460c810a9ebc56f"><td class="memItemLeft" align="right" valign="top"><a id="a66cfd9ec06e2aca25460c810a9ebc56f"></a>
CloudActorMapPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a></td></tr>
<tr class="memdesc:a66cfd9ec06e2aca25460c810a9ebc56f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal list with actor pointers and name IDs for point clouds. <br /></td></tr>
<tr class="separator:a66cfd9ec06e2aca25460c810a9ebc56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd7fa6ba58c92f482755370377cb2d9f"><td class="memItemLeft" align="right" valign="top"><a id="abd7fa6ba58c92f482755370377cb2d9f"></a>
ShapeActorMapPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a></td></tr>
<tr class="memdesc:abd7fa6ba58c92f482755370377cb2d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal list with actor pointers and name IDs for shapes. <br /></td></tr>
<tr class="separator:abd7fa6ba58c92f482755370377cb2d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368699c6820d06531c4cf22441ea5af1"><td class="memItemLeft" align="right" valign="top"><a id="a368699c6820d06531c4cf22441ea5af1"></a>
CoordinateActorMapPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a368699c6820d06531c4cf22441ea5af1">coordinate_actor_map_</a></td></tr>
<tr class="memdesc:a368699c6820d06531c4cf22441ea5af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal list with actor pointers and viewpoint for coordinates. <br /></td></tr>
<tr class="separator:a368699c6820d06531c4cf22441ea5af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa0ddd68e42ec027fd683fa99b7ab743"><td class="memItemLeft" align="right" valign="top"><a id="aaa0ddd68e42ec027fd683fa99b7ab743"></a>
<a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkOrientationMarkerWidget &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa0ddd68e42ec027fd683fa99b7ab743">axes_widget_</a></td></tr>
<tr class="memdesc:aaa0ddd68e42ec027fd683fa99b7ab743"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal pointer to widget which contains a set of axes <br /></td></tr>
<tr class="separator:aaa0ddd68e42ec027fd683fa99b7ab743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c7010167ae0eb7b32647cf22e860839"><td class="memItemLeft" align="right" valign="top"><a id="a1c7010167ae0eb7b32647cf22e860839"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a1c7010167ae0eb7b32647cf22e860839">camera_set_</a></td></tr>
<tr class="memdesc:a1c7010167ae0eb7b32647cf22e860839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean that holds whether or not the camera parameters were manually initialized <br /></td></tr>
<tr class="separator:a1c7010167ae0eb7b32647cf22e860839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac91347ad735791d8f2ee65e1a1e4e869"><td class="memItemLeft" align="right" valign="top"><a id="ac91347ad735791d8f2ee65e1a1e4e869"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac91347ad735791d8f2ee65e1a1e4e869">camera_file_loaded_</a></td></tr>
<tr class="memdesc:ac91347ad735791d8f2ee65e1a1e4e869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean that holds whether or not a camera file were automatically loaded <br /></td></tr>
<tr class="separator:ac91347ad735791d8f2ee65e1a1e4e869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d7417bf65a4adb4f156b2c4adc4e683"><td class="memItemLeft" align="right" valign="top"><a id="a8d7417bf65a4adb4f156b2c4adc4e683"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8d7417bf65a4adb4f156b2c4adc4e683">use_vbos_</a></td></tr>
<tr class="memdesc:a8d7417bf65a4adb4f156b2c4adc4e683"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean that holds whether or not to use the <a class="el" href="classvtk_vertex_buffer_object_mapper.html">vtkVertexBufferObjectMapper</a> <br /></td></tr>
<tr class="separator:a8d7417bf65a4adb4f156b2c4adc4e683"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>PCL Visualizer main class. </p>
<dl class="section author"><dt>作者</dt><dd>Radu B. Rusu</dd></dl>
<dl class="section note"><dt>注解</dt><dd>This class can NOT be used across multiple threads. Only call functions of objects of this class from the same thread that they were created in! Some methods, e.g. addPointCloud, will crash if called from other threads. </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a8afc60c209d09ab637fc15684c67d70c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8afc60c209d09ab637fc15684c67d70c">&#9670;&nbsp;</a></span>PCLVisualizer() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCLVisualizer </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>create_interactor</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PCL Visualizer constructor. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the window name (empty by default) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">create_interactor</td><td>if true (default), create an interactor, false otherwise </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab1d7dcec36942a12fa15dbc2a42c0eb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1d7dcec36942a12fa15dbc2a42c0eb4">&#9670;&nbsp;</a></span>PCLVisualizer() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCLVisualizer </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style.html">PCLVisualizerInteractorStyle</a> *&#160;</td>
          <td class="paramname"><em>style</em> = <code>PCLVisualizerInteractorStyle::New()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>create_interactor</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PCL Visualizer constructor. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the window name (empty by default) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">style</td><td>interactor style (defaults to <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style.html" title="PCLVisualizerInteractorStyle defines an unique, custom VTK based interactory style for PCL Visualizer...">PCLVisualizerInteractorStyle</a>) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">create_interactor</td><td>if true (default), create an interactor, false otherwise </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="aceae35b37cead83c2e609a28e473a293"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceae35b37cead83c2e609a28e473a293">&#9670;&nbsp;</a></span>addActorToRenderer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::addActorToRenderer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkProp &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Adds a vtk actor to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">actor</td><td>a pointer to the vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>port where the actor should be added to (default: 0/all)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>If viewport is set to 0, the actor will be added to all existing renders. To select a specific viewport use an integer between 1 and N. </dd></dl>

</div>
</div>
<a id="aba95dcf30c94ce32d4ba3f70abb0983a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba95dcf30c94ce32d4ba3f70abb0983a">&#9670;&nbsp;</a></span>addArrow() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename P1 , typename P2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addArrow </td>
          <td>(</td>
          <td class="paramtype">const P1 &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const P2 &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>display_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;arrow&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line arrow segment between two points, and (optionally) display the distance between them </p>
<p>Arrow head is attached on the <b>start</b> point (<code>pt1</code>) of the arrow.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pt1</td><td>the first (start) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pt2</td><td>the second (end) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">display_length</td><td>true if the length should be displayed on the arrow as text </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the line id/name (default: "arrow") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;{</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  {</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addArrow] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  }</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160; </div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;</a> leader = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;::New</a> ();</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetValue (pt1.x, pt1.y, pt1.z);</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetValue (pt2.x, pt2.y, pt2.z);</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;  leader-&gt;SetArrowStyleToFilled ();</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;  leader-&gt;SetArrowPlacementToPoint1 ();</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;  <span class="keywordflow">if</span> (display_length)</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    leader-&gt;AutoLabelOn ();</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    leader-&gt;AutoLabelOff ();</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; </div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  leader-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (leader, viewport);</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160; </div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;  (*shape_actor_map_)[id] = leader;</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_abaf97c77fe52b4db363ddb5890f1b74f"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">pcl::visualization::PCLVisualizer::contains</a></div><div class="ttdeci">bool contains(const std::string &amp;id) const</div><div class="ttdoc">Check if the cloud, shape, or coordinate with the given id was already added to this visualizer.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.h:587</div></div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_aceae35b37cead83c2e609a28e473a293"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">pcl::visualization::PCLVisualizer::addActorToRenderer</a></div><div class="ttdeci">void addActorToRenderer(const vtkSmartPointer&lt; vtkProp &gt; &amp;actor, int viewport=0)</div><div class="ttdoc">Internal method. Adds a vtk actor to screen.</div></div>
<div class="ttc" id="aclassvtk_smart_pointer_html"><div class="ttname"><a href="classvtk_smart_pointer.html">vtkSmartPointer</a></div><div class="ttdef"><b>Definition:</b> actor_map.h:50</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a90e704438b073458d7b1d6ebe54a9c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90e704438b073458d7b1d6ebe54a9c2d">&#9670;&nbsp;</a></span>addArrow() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename P1 , typename P2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addArrow </td>
          <td>(</td>
          <td class="paramtype">const P1 &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const P2 &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;arrow&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line arrow segment between two points, and display the distance between them </p>
<p>Arrow heads are attached to both end points of the arrow.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pt1</td><td>the first (start) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pt2</td><td>the second (end) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the arrow id/name (default: "arrow") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;{</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  {</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addArrow] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;  }</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160; </div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;</a> leader = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;::New</a> ();</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetValue (pt1.x, pt1.y, pt1.z);</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetValue (pt2.x, pt2.y, pt2.z);</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;  leader-&gt;SetArrowStyleToFilled ();</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;  leader-&gt;AutoLabelOn ();</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  leader-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (leader, viewport);</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;  (*shape_actor_map_)[id] = leader;</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a260af85c66b36018c12cc56fe6aae8c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a260af85c66b36018c12cc56fe6aae8c2">&#9670;&nbsp;</a></span>addArrow() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename P1 , typename P2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addArrow </td>
          <td>(</td>
          <td class="paramtype">const P1 &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const P2 &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;arrow&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line arrow segment between two points, and display the distance between them in a given color </p>
<p>Arrow heads are attached to both end points of the arrow.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pt1</td><td>the first (start) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pt2</td><td>the second (end) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r_line</td><td>the red channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g_line</td><td>the green channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b_line</td><td>the blue channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r_text</td><td>the red channel of the color that the text should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g_text</td><td>the green channel of the color that the text should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b_text</td><td>the blue channel of the color that the text should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the line id/name (default: "arrow") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;{</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  {</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addArrow] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;  }</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160; </div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;</a> leader = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLeaderActor2D&gt;::New</a> ();</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  leader-&gt;GetPositionCoordinate ()-&gt;SetValue (pt1.x, pt1.y, pt1.z);</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetCoordinateSystemToWorld ();</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  leader-&gt;GetPosition2Coordinate ()-&gt;SetValue (pt2.x, pt2.y, pt2.z);</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;  leader-&gt;SetArrowStyleToFilled ();</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;  leader-&gt;AutoLabelOn ();</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160; </div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  leader-&gt;GetLabelTextProperty()-&gt;SetColor(r_text, g_text, b_text);</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  </div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  leader-&gt;GetProperty ()-&gt;SetColor (r_line, g_line, b_line);</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (leader, viewport);</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160; </div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  (*shape_actor_map_)[id] = leader;</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6211c12fd304127f21e1419506f9eaf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6211c12fd304127f21e1419506f9eaf5">&#9670;&nbsp;</a></span>addCircle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCircle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;circle&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a circle from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (x, y, radius) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the circle id/name (default: "circle") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0)</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// The following are given (or computed using sample consensus techniques)</span></div>
<div class="line"><span class="comment">// See SampleConsensusModelCircle2D for more information</span></div>
<div class="line"><span class="comment">// float x, y, radius;</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> circle_coeff;</div>
<div class="line">circle_coeff.values.resize (3);    <span class="comment">// We need 3 values</span></div>
<div class="line">circle_coeff.values[0] = x;</div>
<div class="line">circle_coeff.values[1] = y;</div>
<div class="line">circle_coeff.values[2] = radius;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSet&gt;</a> data = <a class="code" href="shapes_8h.html#ae9c0726430adf81fbdbbc8f21bec56d2">pcl::visualization::create2DCircle</a> (circle_coeff, z);</div>
<div class="ttc" id="ashapes_8h_html_ae9c0726430adf81fbdbbc8f21bec56d2"><div class="ttname"><a href="shapes_8h.html#ae9c0726430adf81fbdbbc8f21bec56d2">pcl::visualization::create2DCircle</a></div><div class="ttdeci">PCL_EXPORTS vtkSmartPointer&lt; vtkDataSet &gt; create2DCircle(const pcl::ModelCoefficients &amp;coefficients, double z=0.0)</div><div class="ttdoc">Create a 2d circle shape from a set of model coefficients.</div></div>
<div class="ttc" id="astructpcl_1_1_model_coefficients_html"><div class="ttname"><a href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a></div><div class="ttdef"><b>Definition:</b> ModelCoefficients.h:13</div></div>
</div><!-- fragment --> 
</div>
</div>
<a id="a816a9b13fb66e92bfe551009e901dd4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a816a9b13fb66e92bfe551009e901dd4e">&#9670;&nbsp;</a></span>addCone()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCone </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cone&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a cone from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (see pcl::visualization::createCone) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the cone id/name (default: "cone") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a32d311713e64ab39c2093ef81f5d6d30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32d311713e64ab39c2093ef81f5d6d30">&#9670;&nbsp;</a></span>addCoordinateSystem() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::addCoordinateSystem </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;reference&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at x, y, z, Roll,Pitch,Yaw </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>transformation matrix </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the coordinate system object id (default: reference) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all)</td></tr>
  </table>
  </dd>
</dl>
<p>RPY Angles Rotate the reference frame by the angle roll about axis x Rotate the reference frame by the angle pitch about axis y Rotate the reference frame by the angle yaw about axis z</p>
<p>Description: Sets the orientation of the Prop3D. Orientation is specified as X,Y and Z rotations in that order, but they are performed as RotateZ, RotateX, and finally RotateY.</p>
<p>All axies use right hand rule. x=red axis, y=green axis, z=blue axis z direction is point into the screen. </p><div class="fragment"><div class="line">z</div>
<div class="line"> \</div>
<div class="line">  \</div>
<div class="line">   \</div>
<div class="line">    -----------&gt; x</div>
<div class="line">    |</div>
<div class="line">    |</div>
<div class="line">    |</div>
<div class="line">    |</div>
<div class="line">    |</div>
<div class="line">    |</div>
<div class="line">    y</div>
</div><!-- fragment --> 
</div>
</div>
<a id="ab49c9042541132dfc71138c06b26d24e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab49c9042541132dfc71138c06b26d24e">&#9670;&nbsp;</a></span>addCoordinateSystem() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::addCoordinateSystem </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;reference&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at x, y, z </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>the X position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>the Y position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">z</td><td>the Z position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the coordinate system object id (default: reference) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a50bd74511f80f9e1192c4896c87688cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50bd74511f80f9e1192c4896c87688cc">&#9670;&nbsp;</a></span>addCoordinateSystem() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::addCoordinateSystem </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;reference&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at 0,0,0. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the coordinate system object id (default: reference) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a21f903d704546752c4211d826b637c7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21f903d704546752c4211d826b637c7a">&#9670;&nbsp;</a></span>addCorrespondences() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add the specified correspondences to the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>The source points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target_points</td><td>The target points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>The mapping from source points to target points. Each element must be an index into target_points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "correspondences") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the correspondences should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        {</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;          <span class="comment">// If Nth not given, display all correspondences</span></div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;          <span class="keywordflow">return</span> (addCorrespondences&lt;PointT&gt; (source_points, target_points, </div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;                                              correspondences, 1, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af60f2f8c70d8eed2729694771b9e3333"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af60f2f8c70d8eed2729694771b9e3333">&#9670;&nbsp;</a></span>addCorrespondences() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>overwrite</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the specified correspondences to the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>The source points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target_points</td><td>The target points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>The mapping from source points to target points. Each element must be an index into target_points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nth</td><td>display only the Nth correspondence (e.g., skip the rest) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "correspondences") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the correspondences should be added (default: all) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">overwrite</td><td>allow to overwrite already existing correspondences </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;{</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  <span class="keywordflow">if</span> (correspondences.empty ())</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;  {</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    PCL_DEBUG (<span class="stringliteral">&quot;[addCorrespondences] An empty set of correspondences given! Nothing to display.\n&quot;</span>);</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;  }</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; </div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;  ShapeActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;  <span class="keywordflow">if</span> (am_it != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;end () &amp;&amp; overwrite == <span class="keyword">false</span>)</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;  {</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addCorrespondences] A set of correspondences with id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (am_it == <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;end () &amp;&amp; overwrite == <span class="keyword">true</span>)</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;  {</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    overwrite = <span class="keyword">false</span>; <span class="comment">// Correspondences doesn&#39;t exist, add them instead of updating them</span></div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;  }</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; </div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;  <span class="keywordtype">int</span> n_corr = int (correspondences.size () / nth);</div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> line_data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; </div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;  <span class="comment">// Prepare colors</span></div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;</a> line_colors = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;::New</a> ();</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;  line_colors-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;  line_colors-&gt;SetName (<span class="stringliteral">&quot;Colors&quot;</span>);</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;  line_colors-&gt;SetNumberOfTuples (n_corr);</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; </div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;  <span class="comment">// Prepare coordinates</span></div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> line_points = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;::New</a> ();</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;  line_points-&gt;SetNumberOfPoints (2 * n_corr);</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; </div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> line_cells_id = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;::New</a> ();</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;  line_cells_id-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;  line_cells_id-&gt;SetNumberOfTuples (n_corr);</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  vtkIdType *line_cell_id = line_cells_id-&gt;GetPointer (0);</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> line_cells = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; </div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;</a> line_tcoords = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;::New</a> ();</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;  line_tcoords-&gt;SetNumberOfComponents (1);</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;  line_tcoords-&gt;SetNumberOfTuples (n_corr * 2);</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;  line_tcoords-&gt;SetName (<span class="stringliteral">&quot;Texture Coordinates&quot;</span>);</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; </div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;  <span class="keywordtype">double</span> tc[3] = {0.0, 0.0, 0.0};</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; </div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;  Eigen::Affine3f source_transformation;</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;  source_transformation.linear () = source_points-&gt;sensor_orientation_.matrix ();</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;  source_transformation.translation () = source_points-&gt;sensor_origin_.head (3);</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;  Eigen::Affine3f target_transformation;</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;  target_transformation.linear () = target_points-&gt;sensor_orientation_.matrix ();</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;  target_transformation.translation () = target_points-&gt;sensor_origin_.head (3);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; </div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;  <span class="keywordtype">int</span> j = 0;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;  <span class="comment">// Draw lines between the best corresponding points</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; correspondences.size (); i += nth, ++j)</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;  {</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    <span class="keywordflow">if</span> (correspondences[i].index_match == -1)</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    {</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;      PCL_WARN (<span class="stringliteral">&quot;[addCorrespondences] No valid index_match for correspondence %d\n&quot;</span>, i);</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    }</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; </div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p_src (source_points-&gt;points[correspondences[i].index_query]);</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p_tgt (target_points-&gt;points[correspondences[i].index_match]);</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; </div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;    p_src.getVector3fMap () = source_transformation * p_src.getVector3fMap ();</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    p_tgt.getVector3fMap () = target_transformation * p_tgt.getVector3fMap ();</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; </div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    <span class="keywordtype">int</span> id1 = j * 2 + 0, id2 = j * 2 + 1;</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="comment">// Set the points</span></div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    line_points-&gt;SetPoint (id1, p_src.x, p_src.y, p_src.z);</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    line_points-&gt;SetPoint (id2, p_tgt.x, p_tgt.y, p_tgt.z);</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    <span class="comment">// Set the cell ID</span></div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    *line_cell_id++ = 2;</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    *line_cell_id++ = id1;</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    *line_cell_id++ = id2;</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    <span class="comment">// Set the texture coords</span></div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    tc[0] = 0.; line_tcoords-&gt;SetTuple (id1, tc);</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    tc[0] = 1.; line_tcoords-&gt;SetTuple (id2, tc);</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; </div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    <span class="keywordtype">float</span> rgb[3];</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    rgb[0] = vtkMath::Random (32, 255); <span class="comment">// min / max</span></div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    rgb[1] = vtkMath::Random (32, 255);</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    rgb[2] = vtkMath::Random (32, 255);</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;    line_colors-&gt;InsertTuple (i, rgb);</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;  }</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;  line_colors-&gt;SetNumberOfTuples (j);</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;  line_cells_id-&gt;SetNumberOfTuples (j);</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;  line_cells-&gt;SetCells (n_corr, line_cells_id);</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;  line_points-&gt;SetNumberOfPoints (j*2);</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;  line_tcoords-&gt;SetNumberOfTuples (j*2);</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; </div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;  <span class="comment">// Fill in the lines</span></div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;  line_data-&gt;SetPoints (line_points);</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;  line_data-&gt;SetLines (line_cells);</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;  line_data-&gt;GetPointData ()-&gt;SetTCoords (line_tcoords);</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;  line_data-&gt;GetCellData ()-&gt;SetScalars (line_colors);</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; </div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;  <span class="keywordflow">if</span> (!overwrite)</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;  {</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (line_data, actor);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    actor-&gt;GetProperty ()-&gt;SetOpacity (0.5);</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; </div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;  }</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;  {</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor = vtkLODActor::SafeDownCast (am_it-&gt;second);</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="keywordflow">if</span> (!actor)</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;      <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    <span class="comment">// Update the mapper</span></div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(actor-&gt;GetMapper ())-&gt;SetInput (line_data);</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> (actor-&gt;GetMapper ())-&gt;SetInputData (line_data);</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;  }</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; </div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_abd7fa6ba58c92f482755370377cb2d9f"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">pcl::visualization::PCLVisualizer::shape_actor_map_</a></div><div class="ttdeci">ShapeActorMapPtr shape_actor_map_</div><div class="ttdoc">Internal list with actor pointers and name IDs for shapes.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.h:1994</div></div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_ac15689c03d40f25c24be925e0d302948"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">pcl::visualization::PCLVisualizer::createActorFromVTKDataSet</a></div><div class="ttdeci">void createActorFromVTKDataSet(const vtkSmartPointer&lt; vtkDataSet &gt; &amp;data, vtkSmartPointer&lt; vtkActor &gt; &amp;actor, bool use_scalars=true)</div><div class="ttdoc">Internal method. Creates a vtk actor from a vtk polydata object.</div></div>
<div class="ttc" id="astructpcl_1_1_point_x_y_z_r_g_b_a_html"><div class="ttname"><a href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a></div><div class="ttdoc">A point structure representing Euclidean xyz coordinates, and the RGBA color.</div><div class="ttdef"><b>Definition:</b> point_types.hpp:540</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a3c20fdb241ea003aff44e9d22c665acc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c20fdb241ea003aff44e9d22c665acc">&#9670;&nbsp;</a></span>addCorrespondences() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the specified correspondences to the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>The source points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target_points</td><td>The target points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>The mapping from source points to target points. Each element must be an index into target_points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "correspondences") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the correspondences should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;{</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;  pcl::Correspondences corrs;</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;  corrs.resize (correspondences.size ());</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; </div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;  <span class="keywordtype">size_t</span> index = 0;</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;  <span class="keywordflow">for</span> (pcl::Correspondences::iterator corrs_it (corrs.begin ()); corrs_it != corrs.end (); ++corrs_it)</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;  {</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    corrs_it-&gt;index_query = index;</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    corrs_it-&gt;index_match = correspondences[index];</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    index++;</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;  }</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; </div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;  <span class="keywordflow">return</span> (addCorrespondences&lt;PointT&gt; (source_points, target_points, corrs, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6e805f7508dcefb2cf6fa3eb817c1432"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e805f7508dcefb2cf6fa3eb817c1432">&#9670;&nbsp;</a></span>addCube() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCube </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>translation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternionf &amp;&#160;</td>
          <td class="paramname"><em>rotation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cube&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a cube from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">translation</td><td>a translation to apply to the cube from 0,0,0 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rotation</td><td>a quaternion-based rotation to apply to the cube </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>the cube's width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>the cube's height </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">depth</td><td>the cube's depth </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the cube id/name (default: "cube") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa55f97ba784826552c9584d407014c78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa55f97ba784826552c9584d407014c78">&#9670;&nbsp;</a></span>addCube() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCube </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cube&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a cube from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (see pcl::visualization::createCube) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the cube id/name (default: "cube") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6e4d4cf26e3a97aad4d86b49ed865dd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e4d4cf26e3a97aad4d86b49ed865dd1">&#9670;&nbsp;</a></span>addCube() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCube </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cube&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a cube </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x_min</td><td>the min X coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x_max</td><td>the max X coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y_min</td><td>the min Y coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y_max</td><td>the max Y coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">z_min</td><td>the min Z coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">z_max</td><td>the max Z coordinate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>how much red (0.0 -&gt; 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>how much green (0.0 -&gt; 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>how much blue (0.0 -&gt; 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the cube id/name (default: "cube") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aef6238199505d3b522f099e84a5444de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef6238199505d3b522f099e84a5444de">&#9670;&nbsp;</a></span>addCylinder()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addCylinder </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cylinder&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a cylinder from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (point_on_axis, axis_direction, radius) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the cylinder id/name (default: "cylinder") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0)</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// The following are given (or computed using sample consensus techniques)</span></div>
<div class="line"><span class="comment">// See SampleConsensusModelCylinder for more information.</span></div>
<div class="line"><span class="comment">// Eigen::Vector3f pt_on_axis, axis_direction;</span></div>
<div class="line"><span class="comment">// float radius;</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> cylinder_coeff;</div>
<div class="line">cylinder_coeff.values.resize (7);    <span class="comment">// We need 7 values</span></div>
<div class="line">cylinder_coeff.values[0] = pt_on_axis.x ();</div>
<div class="line">cylinder_coeff.values[1] = pt_on_axis.y ();</div>
<div class="line">cylinder_coeff.values[2] = pt_on_axis.z ();</div>
<div class="line"> </div>
<div class="line">cylinder_coeff.values[3] = axis_direction.x ();</div>
<div class="line">cylinder_coeff.values[4] = axis_direction.y ();</div>
<div class="line">cylinder_coeff.values[5] = axis_direction.z ();</div>
<div class="line"> </div>
<div class="line">cylinder_coeff.values[6] = radius;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aef6238199505d3b522f099e84a5444de">addCylinder</a> (cylinder_coeff);</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_aef6238199505d3b522f099e84a5444de"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aef6238199505d3b522f099e84a5444de">pcl::visualization::PCLVisualizer::addCylinder</a></div><div class="ttdeci">bool addCylinder(const pcl::ModelCoefficients &amp;coefficients, const std::string &amp;id=&quot;cylinder&quot;, int viewport=0)</div><div class="ttdoc">Add a cylinder from a set of given model coefficients</div></div>
</div><!-- fragment --> 
</div>
</div>
<a id="aa788c98f62fbf379abfc3b03550ecab5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa788c98f62fbf379abfc3b03550ecab5">&#9670;&nbsp;</a></span>addLine() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename P1 , typename P2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addLine </td>
          <td>(</td>
          <td class="paramtype">const P1 &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const P2 &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;line&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line segment from two points </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pt1</td><td>the first (start) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pt2</td><td>the second (end) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the line id/name (default: "line") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;{</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  <span class="keywordflow">return</span> (!<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa788c98f62fbf379abfc3b03550ecab5">addLine</a> (pt1, pt2, 0.5, 0.5, 0.5, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_aa788c98f62fbf379abfc3b03550ecab5"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa788c98f62fbf379abfc3b03550ecab5">pcl::visualization::PCLVisualizer::addLine</a></div><div class="ttdeci">bool addLine(const P1 &amp;pt1, const P2 &amp;pt2, const std::string &amp;id=&quot;line&quot;, int viewport=0)</div><div class="ttdoc">Add a line segment from two points</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.hpp:569</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a10864bcc375cad47986a3601fbcd2e51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10864bcc375cad47986a3601fbcd2e51">&#9670;&nbsp;</a></span>addLine() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename P1 , typename P2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addLine </td>
          <td>(</td>
          <td class="paramtype">const P1 &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const P2 &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;line&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line segment from two points </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pt1</td><td>the first (start) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pt2</td><td>the second (end) point on the line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the line should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the line id/name (default: "line") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;{</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  {</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addLine] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  }</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSet&gt;</a> data = <a class="code" href="shapes_8h.html#abb746d0348192ce0950dc7adf19052f4">createLine</a> (pt1.getVector4fMap (), pt2.getVector4fMap ());</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160; </div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (data, actor);</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  actor-&gt;GetMapper ()-&gt;ScalarVisibilityOff ();</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;  (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;}</div>
<div class="ttc" id="ashapes_8h_html_abb746d0348192ce0950dc7adf19052f4"><div class="ttname"><a href="shapes_8h.html#abb746d0348192ce0950dc7adf19052f4">pcl::visualization::createLine</a></div><div class="ttdeci">PCL_EXPORTS vtkSmartPointer&lt; vtkDataSet &gt; createLine(const Eigen::Vector4f &amp;pt1, const Eigen::Vector4f &amp;pt2)</div><div class="ttdoc">Create a line shape from two points</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5fd2b99b85da61df8b58980bdb6b0f41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fd2b99b85da61df8b58980bdb6b0f41">&#9670;&nbsp;</a></span>addLine() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addLine </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;line&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a line from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (point_on_line, direction) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the line id/name (default: "line") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0)</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// The following are given (or computed using sample consensus techniques)</span></div>
<div class="line"><span class="comment">// See SampleConsensusModelLine for more information</span></div>
<div class="line"><span class="comment">// Eigen::Vector3f point_on_line, line_direction;</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> line_coeff;</div>
<div class="line">line_coeff.values.resize (6);    <span class="comment">// We need 6 values</span></div>
<div class="line">line_coeff.values[0] = point_on_line.x ();</div>
<div class="line">line_coeff.values[1] = point_on_line.y ();</div>
<div class="line">line_coeff.values[2] = point_on_line.z ();</div>
<div class="line"> </div>
<div class="line">line_coeff.values[3] = line_direction.x ();</div>
<div class="line">line_coeff.values[4] = line_direction.y ();</div>
<div class="line">line_coeff.values[5] = line_direction.z ();</div>
<div class="line"> </div>
<div class="line"><a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aa788c98f62fbf379abfc3b03550ecab5">addLine</a> (line_coeff);</div>
</div><!-- fragment --> 
</div>
</div>
<a id="a8fd34e390a1aaf244b2ebd9ae7263a02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fd34e390a1aaf244b2ebd9ae7263a02">&#9670;&nbsp;</a></span>addModelFromPLYFile() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addModelFromPLYFile </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;PLYModel&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a PLYmodel as a mesh </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>of the ply file </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the model id/name (default: "PLYModel") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a65ca2b5b468f5232de86143ba47cedda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65ca2b5b468f5232de86143ba47cedda">&#9670;&nbsp;</a></span>addModelFromPLYFile() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addModelFromPLYFile </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkTransform &gt;&#160;</td>
          <td class="paramname"><em>transform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;PLYModel&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a PLYmodel as a mesh and applies given transformation </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>of the ply file </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>transformation to apply </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the model id/name (default: "PLYModel") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a58291bf910615c76d14859978007f72a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58291bf910615c76d14859978007f72a">&#9670;&nbsp;</a></span>addModelFromPolyData() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addModelFromPolyData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt;&#160;</td>
          <td class="paramname"><em>polydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;PolyData&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a vtkPolydata as a mesh </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polydata</td><td>vtkPolyData </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the model id/name (default: "PolyData") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af9f20a99bb9a2facdeaf3b440e5e2b89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9f20a99bb9a2facdeaf3b440e5e2b89">&#9670;&nbsp;</a></span>addModelFromPolyData() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addModelFromPolyData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt;&#160;</td>
          <td class="paramname"><em>polydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkTransform &gt;&#160;</td>
          <td class="paramname"><em>transform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;PolyData&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a vtkPolydata as a mesh </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polydata</td><td>vtkPolyData </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>transformation to apply </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the model id/name (default: "PolyData") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aea914522fc324cbd9a139d2b72461f1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea914522fc324cbd9a139d2b72461f1f">&#9670;&nbsp;</a></span>addOrientationMarkerWidgetAxes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::addOrientationMarkerWidgetAxes </td>
          <td>(</td>
          <td class="paramtype">vtkRenderWindowInteractor *&#160;</td>
          <td class="paramname"><em>interactor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a widget which shows an interactive axes display for orientation </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">interactor</td><td>- Pointer to the vtk interactor object used by the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> window </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a27a459da46f56faed4b44ef1c57bbbca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27a459da46f56faed4b44ef1c57bbbca">&#9670;&nbsp;</a></span>addPlane()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPlane </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;plane&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a plane from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (a, b, c, d with ax+by+cz+d=0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the plane id/name (default: "plane") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0)</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// The following are given (or computed using sample consensus techniques)</span></div>
<div class="line"><span class="comment">// See SampleConsensusModelPlane for more information</span></div>
<div class="line"><span class="comment">// Eigen::Vector4f plane_parameters;</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> plane_coeff;</div>
<div class="line">plane_coeff.values.resize (4);    <span class="comment">// We need 4 values</span></div>
<div class="line">plane_coeff.values[0] = plane_parameters.x ();</div>
<div class="line">plane_coeff.values[1] = plane_parameters.y ();</div>
<div class="line">plane_coeff.values[2] = plane_parameters.z ();</div>
<div class="line">plane_coeff.values[3] = plane_parameters.w ();</div>
<div class="line"> </div>
<div class="line"><a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a27a459da46f56faed4b44ef1c57bbbca">addPlane</a> (plane_coeff);</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a27a459da46f56faed4b44ef1c57bbbca"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a27a459da46f56faed4b44ef1c57bbbca">pcl::visualization::PCLVisualizer::addPlane</a></div><div class="ttdeci">bool addPlane(const pcl::ModelCoefficients &amp;coefficients, const std::string &amp;id=&quot;plane&quot;, int viewport=0)</div><div class="ttdoc">Add a plane from a set of given model coefficients</div></div>
</div><!-- fragment --> 
</div>
</div>
<a id="a8f60c8de0c7464dfc32ec08b3f4126ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f60c8de0c7464dfc32ec08b3f4126ec">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[1/14]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const pcl::PCLPointCloud2::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<p>Because the geometry/color handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active handler. This makes it possible to switch between different handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using [Alt+]0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a15c4a4ca05173a76852f00f68b59dbee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15c4a4ca05173a76852f00f68b59dbee">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[2/14]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const pcl::PCLPointCloud2::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<p>Because the geometry/color handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active handler. This makes it possible to switch between different handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using [Alt+]0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for geometry </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a10b1400998917e992d737f359747eb07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10b1400998917e992d737f359747eb07">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[3/14]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const pcl::PCLPointCloud2::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a binary blob Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<p>Because the geometry/color handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active handler. This makes it possible to switch between different handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using [Alt+]0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for geometry </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae8f480bb31825891aa75c1771bc28e63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8f480bb31825891aa75c1771bc28e63">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[4/14]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_point_x_y_z.html" title="A point structure representing Euclidean xyz coordinates. (SSE friendly)">PointXYZ</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        {</div>
<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;          <span class="keywordflow">return</span> (addPointCloud&lt;pcl::PointXYZ&gt; (cloud, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4c55fe69e60f043d53cf7ec9b12a086c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c55fe69e60f043d53cf7ec9b12a086c">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[5/14]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">pcl::PointXYZL</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_point_x_y_z_l.html">PointXYZL</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        {</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field.html">pcl::visualization::PointCloudColorHandlerLabelField&lt;pcl::PointXYZL&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;          <span class="keywordflow">return</span> (addPointCloud&lt;pcl::PointXYZL&gt; (cloud, color_handler, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_point_cloud_color_handler_label_field_html"><div class="ttname"><a href="classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field.html">pcl::visualization::PointCloudColorHandlerLabelField</a></div><div class="ttdoc">Label field handler class for colors. Paints the points according to their labels,...</div><div class="ttdef"><b>Definition:</b> point_cloud_color_handlers.h:506</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ab8d5b3726e6c3171d40cf35fd2612205"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8d5b3726e6c3171d40cf35fd2612205">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[6/14]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html" title="A point structure representing Euclidean xyz coordinates, and the RGB color.">PointXYZRGB</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;        {</div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field.html">pcl::visualization::PointCloudColorHandlerRGBField&lt;pcl::PointXYZRGB&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;          <span class="keywordflow">return</span> (addPointCloud&lt;pcl::PointXYZRGB&gt; (cloud, color_handler, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field_html"><div class="ttname"><a href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field.html">pcl::visualization::PointCloudColorHandlerRGBField</a></div><div class="ttdoc">RGB handler class for colors. Uses the data present in the &quot;rgb&quot; or &quot;rgba&quot; fields as the color at eac...</div><div class="ttdef"><b>Definition:</b> point_cloud_color_handlers.h:258</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a19f8a3700b3e248b7d78e7a715280ea0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19f8a3700b3e248b7d78e7a715280ea0">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[7/14]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html" title="A point structure representing Euclidean xyz coordinates, and the RGBA color.">PointXYZRGBA</a> Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        {</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field.html">pcl::visualization::PointCloudColorHandlerRGBAField&lt;pcl::PointXYZRGBA&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;          <span class="keywordflow">return</span> (addPointCloud&lt;pcl::PointXYZRGBA&gt; (cloud, color_handler, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field_html"><div class="ttname"><a href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field.html">pcl::visualization::PointCloudColorHandlerRGBAField</a></div><div class="ttdoc">RGBA handler class for colors. Uses the data present in the &quot;rgba&quot; field as the color at each point....</div><div class="ttdef"><b>Definition:</b> point_cloud_color_handlers.h:443</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="adf65acb9b139891f75a0eb5752af2c41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf65acb9b139891f75a0eb5752af2c41">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[8/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<p>Because the color handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active color handler. This makes it possible to switch between different color handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using 0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;{</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  <span class="comment">// Check to see if this entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keywordflow">if</span> (am_it != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  {</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="comment">// Here we&#39;re just pushing the handlers onto the queue. If needed, something fancier could</span></div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="comment">// be done such as checking if a specific handler already exists, etc.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    am_it-&gt;second.color_handlers.push_back (color_handler);</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  }</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  PointCloudGeometryHandlerXYZ&lt;PointT&gt; geometry_handler (cloud);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a66cfd9ec06e2aca25460c810a9ebc56f"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">pcl::visualization::PCLVisualizer::cloud_actor_map_</a></div><div class="ttdeci">CloudActorMapPtr cloud_actor_map_</div><div class="ttdoc">Internal list with actor pointers and name IDs for point clouds.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.h:1991</div></div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a749041b9375495588a3e0406e3afec1f"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">pcl::visualization::PCLVisualizer::fromHandlersToScreen</a></div><div class="ttdeci">bool fromHandlersToScreen(const PointCloudGeometryHandler&lt; PointT &gt; &amp;geometry_handler, const PointCloudColorHandler&lt; PointT &gt; &amp;color_handler, const std::string &amp;id, int viewport, const Eigen::Vector4f &amp;sensor_origin=Eigen::Vector4f(0, 0, 0, 0), const Eigen::Quaternion&lt; float &gt; &amp;sensor_orientation=Eigen::Quaternion&lt; float &gt;(1, 0, 0, 0))</div><div class="ttdoc">Internal function which converts the information present in the geometric and color handlers into VTK...</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.hpp:1221</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2e33d443abe811c5d412972c0425f244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e33d443abe811c5d412972c0425f244">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[9/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<p>Because the geometry/color handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active handler. This makes it possible to switch between different handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using [Alt+]0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for geometry </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;{</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <span class="comment">// Check to see if this entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  <span class="keywordflow">if</span> (am_it != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  {</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="comment">// Here we&#39;re just pushing the handlers onto the queue. If needed, something fancier could</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="comment">// be done such as checking if a specific handler already exists, etc.</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    am_it-&gt;second.geometry_handlers.push_back (geometry_handler);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    am_it-&gt;second.color_handlers.push_back (color_handler);</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  }</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="adce8843ff8c96da48a1d17b60d3d7368"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adce8843ff8c96da48a1d17b60d3d7368">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[10/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<p>Because the geometry handler is given as a pointer, it will be pushed back to the list of available handlers, rather than replacing the current active geometric handler. This makes it possible to switch between different geometric handlers 'on-the-fly' at runtime, from the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> interactor interface (using Alt+0..9).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>use a geometry handler object to extract the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;{</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  {</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Here we&#39;re just pushing the handlers onto the queue. If needed, something fancier could</span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="comment">// be done such as checking if a specific handler already exists, etc.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    am_it-&gt;second.geometry_handlers.push_back (geometry_handler);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  }</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  <span class="comment">//PointCloudColorHandlerRandom&lt;PointT&gt; color_handler (cloud);</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  PointCloudColorHandlerCustom&lt;PointT&gt; color_handler (cloud, 255, 255, 255);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a889c9f81b6637fa34dd3c3b2bd9b95e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a889c9f81b6637fa34dd3c3b2bd9b95e1">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[11/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>use a geometry handler object to extract the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;{</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  {</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloud] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="comment">// Here we&#39;re just pushing the handlers onto the queue. If needed, something fancier could</span></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">// be done such as checking if a specific handler already exists, etc.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">//cloud_actor_map_[id].geometry_handlers.push_back (geometry_handler);</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="comment">//cloud_actor_map_[id].color_handlers.push_back (color_handler);</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="comment">//style_-&gt;setCloudActorMap (boost::make_shared&lt;CloudActorMap&gt; (cloud_actor_map_));</span></div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  }</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0a707d3e533de111299795028de90d94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a707d3e533de111299795028de90d94">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[12/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>a specific <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> visualizer handler for colors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  {</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloud] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="comment">// Here we&#39;re just pushing the handlers onto the queue. If needed, something fancier could</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="comment">// be done such as checking if a specific handler already exists, etc.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="comment">//cloud_actor_map_[id].color_handlers.push_back (color_handler);</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="comment">//style_-&gt;setCloudActorMap (boost::make_shared&lt;CloudActorMap&gt; (cloud_actor_map_));</span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;  }</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  PointCloudGeometryHandlerXYZ&lt;PointT&gt; geometry_handler (cloud);</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a53f0930f4129127b62ae8ef6ee475fc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53f0930f4129127b62ae8ef6ee475fc4">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[13/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>use a geometry handler object to extract the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;{</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  {</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloud] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  }</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keywordflow">if</span> (pcl::traits::has_color&lt;PointT&gt;())</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    PointCloudColorHandlerRGBField&lt;PointT&gt; color_handler_rgb_field (cloud);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler_rgb_field, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  }</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  PointCloudColorHandlerCustom&lt;PointT&gt; color_handler (cloud, 255, 255, 255);</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a749041b9375495588a3e0406e3afec1f">fromHandlersToScreen</a> (geometry_handler, color_handler, <span class="keywordtype">id</span>, viewport, cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_));</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a36dbb0c4490a8de4838503dc257ba26a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36dbb0c4490a8de4838503dc257ba26a">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[14/14]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> (templated) to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;{</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  PointCloudGeometryHandlerXYZ&lt;PointT&gt; geometry_handler (cloud);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keywordflow">return</span> (addPointCloud&lt;PointT&gt; (cloud, geometry_handler, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0051e22d9a1503933842510b3fc31467"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0051e22d9a1503933842510b3fc31467">&#9670;&nbsp;</a></span>addPointCloudIntensityGradients()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT , typename GradientT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloudIntensityGradients </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; GradientT &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>gradients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1e-6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the estimated surface intensity gradients of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset containing the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">gradients</td><td>the input point cloud dataset containing the intensity gradient data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>display only every level'th point (default: 100) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the intensity gradient arrow scale (default: 1e-6m) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;{</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;  <span class="keywordflow">if</span> (gradients-&gt;points.size () != cloud-&gt;points.size ())</div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  {</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[addPointCloudGradients] The number of points differs from the number of gradients!\n&quot;</span>);</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  }</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;  {</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloudGradients] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;  }</div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160; </div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;::New</a>();</div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> lines = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a>();</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160; </div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;  points-&gt;SetDataTypeToFloat ();</div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;</a> data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;::New</a> ();</div>
<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;  data-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160; </div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;  vtkIdType nr_gradients = (cloud-&gt;points.size () - 1) / level + 1 ;</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;  <span class="keywordtype">float</span>* pts = <span class="keyword">new</span> <span class="keywordtype">float</span>[2 * nr_gradients * 3];</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; </div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;  <span class="keywordflow">for</span> (vtkIdType i = 0, j = 0; j &lt; nr_gradients; j++, i = j * level)</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  {</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p = cloud-&gt;points[i];</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    p.x += gradients-&gt;points[i].gradient[0] * scale;</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    p.y += gradients-&gt;points[i].gradient[1] * scale;</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    p.z += gradients-&gt;points[i].gradient[2] * scale;</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; </div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    pts[2 * j * 3 + 0] = cloud-&gt;points[i].x;</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    pts[2 * j * 3 + 1] = cloud-&gt;points[i].y;</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    pts[2 * j * 3 + 2] = cloud-&gt;points[i].z;</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    pts[2 * j * 3 + 3] = p.x;</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    pts[2 * j * 3 + 4] = p.y;</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    pts[2 * j * 3 + 5] = p.z;</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; </div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    lines-&gt;InsertNextCell(2);</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    lines-&gt;InsertCellPoint(2*j);</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    lines-&gt;InsertCellPoint(2*j+1);</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  }</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; </div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  data-&gt;SetArray (&amp;pts[0], 2 * nr_gradients * 3, 0, vtkFloatArray::VTK_DATA_ARRAY_DELETE);</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;  points-&gt;SetData (data);</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; </div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polyData = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;::New</a>();</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;  polyData-&gt;SetPoints(points);</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;  polyData-&gt;SetLines(lines);</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetMapper&gt;</a> mapper = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetMapper&gt;::New</a> ();</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  mapper-&gt;SetInput (polyData);</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  mapper-&gt;SetInputData (polyData);</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;  mapper-&gt;SetColorModeToMapScalars();</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  mapper-&gt;SetScalarModeToUsePointData();</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; </div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="comment">// create actor</span></div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;::New</a> ();</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  actor-&gt;SetMapper (mapper);</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; </div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; </div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;  (*cloud_actor_map_)[id].actor = actor;</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b40078a75aba7f01826013ee27e4484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b40078a75aba7f01826013ee27e4484">&#9670;&nbsp;</a></span>addPointCloudNormals() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointNT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloudNormals </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>scale</em> = <code>0.02f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the estimated surface normals of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset containing XYZ data and normals </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>display only every level'th point (default: 100) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the normal arrow scale (default: 0.02m) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;{</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;  <span class="keywordflow">return</span> (addPointCloudNormals&lt;PointNT, PointNT&gt; (cloud, cloud, level, scale, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a013791b58208b7baba403f5a1cdcb9a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a013791b58208b7baba403f5a1cdcb9a2">&#9670;&nbsp;</a></span>addPointCloudNormals() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT , typename PointNT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloudNormals </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>normals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>scale</em> = <code>0.02f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the estimated surface normals of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset containing the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">normals</td><td>the input point cloud dataset containing the normal data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>display only every level'th point (default: 100) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the normal arrow scale (default: 0.02m) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;{</div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;  <span class="keywordflow">if</span> (normals-&gt;points.size () != cloud-&gt;points.size ())</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;  {</div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[addPointCloudNormals] The number of points differs from the number of normals!\n&quot;</span>);</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;  }</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;  {</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloudNormals] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;  }</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;::New</a>();</div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> lines = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a>();</div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; </div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;  points-&gt;SetDataTypeToFloat ();</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;</a> data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFloatArray&gt;::New</a> ();</div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;  data-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160; </div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160; </div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;  vtkIdType nr_normals = 0;</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;  <span class="keywordtype">float</span>* pts = 0;</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; </div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;  <span class="comment">// If the cloud is organized, then distribute the normal step in both directions</span></div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;  <span class="keywordflow">if</span> (cloud-&gt;isOrganized () &amp;&amp; normals-&gt;isOrganized ())</div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;  {</div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    vtkIdType point_step = <span class="keyword">static_cast&lt;</span>vtkIdType<span class="keyword">&gt;</span> (sqrt (<span class="keywordtype">double</span> (level)));</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    nr_normals = (<span class="keyword">static_cast&lt;</span>vtkIdType<span class="keyword">&gt;</span> ((cloud-&gt;width - 1)/ point_step) + 1) *</div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;                 (<span class="keyword">static_cast&lt;</span>vtkIdType<span class="keyword">&gt;</span> ((cloud-&gt;height - 1) / point_step) + 1);</div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    pts = <span class="keyword">new</span> <span class="keywordtype">float</span>[2 * nr_normals * 3];</div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160; </div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    vtkIdType cell_count = 0;</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="keywordflow">for</span> (vtkIdType y = 0; y &lt; normals-&gt;height; y += point_step)</div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;      <span class="keywordflow">for</span> (vtkIdType x = 0; x &lt; normals-&gt;width; x += point_step)</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;      {</div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p = (*cloud)(x, y);</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        p.x += (*normals)(x, y).normal[0] * scale;</div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        p.y += (*normals)(x, y).normal[1] * scale;</div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        p.z += (*normals)(x, y).normal[2] * scale;</div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; </div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        pts[2 * cell_count * 3 + 0] = (*cloud)(x, y).x;</div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        pts[2 * cell_count * 3 + 1] = (*cloud)(x, y).y;</div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        pts[2 * cell_count * 3 + 2] = (*cloud)(x, y).z;</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        pts[2 * cell_count * 3 + 3] = p.x;</div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        pts[2 * cell_count * 3 + 4] = p.y;</div>
<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        pts[2 * cell_count * 3 + 5] = p.z;</div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        lines-&gt;InsertNextCell (2);</div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        lines-&gt;InsertCellPoint (2 * cell_count);</div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        lines-&gt;InsertCellPoint (2 * cell_count + 1);</div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;        cell_count ++;</div>
<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    }</div>
<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;  }</div>
<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  {</div>
<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    nr_normals = (cloud-&gt;points.size () - 1) / level + 1 ;</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    pts = <span class="keyword">new</span> <span class="keywordtype">float</span>[2 * nr_normals * 3];</div>
<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160; </div>
<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0, j = 0; j &lt; nr_normals; j++, i = j * level)</div>
<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    {</div>
<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;      <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p = cloud-&gt;points[i];</div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;      p.x += normals-&gt;points[i].normal[0] * scale;</div>
<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;      p.y += normals-&gt;points[i].normal[1] * scale;</div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;      p.z += normals-&gt;points[i].normal[2] * scale;</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; </div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;      pts[2 * j * 3 + 0] = cloud-&gt;points[i].x;</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;      pts[2 * j * 3 + 1] = cloud-&gt;points[i].y;</div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;      pts[2 * j * 3 + 2] = cloud-&gt;points[i].z;</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;      pts[2 * j * 3 + 3] = p.x;</div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;      pts[2 * j * 3 + 4] = p.y;</div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;      pts[2 * j * 3 + 5] = p.z;</div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; </div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;      lines-&gt;InsertNextCell (2);</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;      lines-&gt;InsertCellPoint (2 * j);</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;      lines-&gt;InsertCellPoint (2 * j + 1);</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    }</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;  }</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; </div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;  data-&gt;SetArray (&amp;pts[0], 2 * nr_normals * 3, 0, vtkFloatArray::VTK_DATA_ARRAY_DELETE);</div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;  points-&gt;SetData (data);</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160; </div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polyData = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;::New</a>();</div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;  polyData-&gt;SetPoints (points);</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;  polyData-&gt;SetLines (lines);</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetMapper&gt;</a> mapper = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetMapper&gt;::New</a> ();</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;  mapper-&gt;SetInput (polyData);</div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;  mapper-&gt;SetInputData (polyData);</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;  mapper-&gt;SetColorModeToMapScalars();</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;  mapper-&gt;SetScalarModeToUsePointData();</div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160; </div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  <span class="comment">// create actor</span></div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;::New</a> ();</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;  actor-&gt;SetMapper (mapper);</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;  <span class="comment">// Use cloud view point info</span></div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;</a> transformation = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;::New</a> ();</div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_, transformation);</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;  actor-&gt;SetUserMatrix (transformation);</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160; </div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;  (*cloud_actor_map_)[id].actor = actor;</div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a19ffbabe8b9e443944a340b3503c27df"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">pcl::visualization::PCLVisualizer::convertToVtkMatrix</a></div><div class="ttdeci">static void convertToVtkMatrix(const Eigen::Matrix4f &amp;m, vtkSmartPointer&lt; vtkMatrix4x4 &gt; &amp;vtk_matrix)</div><div class="ttdoc">Convert Eigen::Matrix4f to vtkMatrix4x4</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aaa72b633862a7de6a882a9903796a2a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa72b633862a7de6a882a9903796a2a0">&#9670;&nbsp;</a></span>addPointCloudPrincipalCurvatures() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointNT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloudPrincipalCurvatures </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_principal_curvatures.html">pcl::PrincipalCurvatures</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>pcs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the estimated principal curvatures of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset containing the XYZ data and normals </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pcs</td><td>the input point cloud dataset containing the principal curvatures data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>display only every level'th point. Default: 100 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the normal arrow scale. Default: 1.0 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id. Default: "cloud" </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a90f2d88ed2f9c57bc716c6b1abd4dab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90f2d88ed2f9c57bc716c6b1abd4dab3">&#9670;&nbsp;</a></span>addPointCloudPrincipalCurvatures() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT , typename PointNT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPointCloudPrincipalCurvatures </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointNT &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>normals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_principal_curvatures.html">pcl::PrincipalCurvatures</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>pcs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the estimated principal curvatures of a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset containing the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">normals</td><td>the input point cloud dataset containing the normal data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pcs</td><td>the input point cloud dataset containing the principal curvatures data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>display only every level'th point. Default: 100 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the normal arrow scale. Default: 1.0 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id. Default: "cloud" </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;{</div>
<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;  <span class="keywordflow">if</span> (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>.size () != cloud-&gt;points.size () || normals-&gt;points.size () != cloud-&gt;points.size ())</div>
<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;  {</div>
<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    pcl::console::print_error (<span class="stringliteral">&quot;[addPointCloudPrincipalCurvatures] The number of points differs from the number of principal curvatures/normals!\n&quot;</span>);</div>
<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;  }</div>
<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160; </div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;  {</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPointCloudPrincipalCurvatures] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;  }</div>
<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160; </div>
<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;</a> polydata_1 = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;</a> polydata_2 = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160; </div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;  <span class="comment">// Setup two colors - one for each line</span></div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> green[3] = {0, 255, 0};</div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> blue[3] = {0, 0, 255};</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160; </div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;  <span class="comment">// Setup the colors array</span></div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;</a> line_1_colors =<a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;::New</a> ();</div>
<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;  line_1_colors-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;  line_1_colors-&gt;SetName (<span class="stringliteral">&quot;Colors&quot;</span>);</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;</a> line_2_colors =<a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;::New</a> ();</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;  line_2_colors-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;  line_2_colors-&gt;SetName (<span class="stringliteral">&quot;Colors&quot;</span>);</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160; </div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="comment">// Create the first sets of lines</span></div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; cloud-&gt;points.size (); i+=level)</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;  {</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p = cloud-&gt;points[i];</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    p.x += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc1 * pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[0]) * scale;</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    p.y += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc1 * pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[1]) * scale;</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    p.z += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc1 * pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[2]) * scale;</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160; </div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLineSource&gt;</a> line_1 = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLineSource&gt;::New</a> ();</div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    line_1-&gt;SetPoint1 (cloud-&gt;points[i].x, cloud-&gt;points[i].y, cloud-&gt;points[i].z);</div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    line_1-&gt;SetPoint2 (p.x, p.y, p.z);</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    line_1-&gt;Update ();</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    polydata_1-&gt;AddInput (line_1-&gt;GetOutput ());</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    polydata_1-&gt;AddInputData (line_1-&gt;GetOutput ());</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    line_1_colors-&gt;InsertNextTupleValue (green);</div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;  }</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;  polydata_1-&gt;Update ();</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> line_1_data = polydata_1-&gt;GetOutput ();</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;  line_1_data-&gt;GetCellData ()-&gt;SetScalars (line_1_colors);</div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160; </div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="comment">// Create the second sets of lines</span></div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; cloud-&gt;points.size (); i += level)</div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  {</div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    Eigen::Vector3f pc (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[0],</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;                        pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[1],</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;                        pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].principal_curvature[2]);</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    Eigen::Vector3f normal (normals-&gt;points[i].normal[0],</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;                            normals-&gt;points[i].normal[1],</div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                            normals-&gt;points[i].normal[2]);</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    Eigen::Vector3f pc_c = pc.cross (normal);</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160; </div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> p = cloud-&gt;points[i];</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    p.x += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc2 * pc_c[0]) * scale;</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    p.y += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc2 * pc_c[1]) * scale;</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    p.z += (pcs-&gt;<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i].pc2 * pc_c[2]) * scale;</div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160; </div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLineSource&gt;</a> line_2 = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLineSource&gt;::New</a> ();</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    line_2-&gt;SetPoint1 (cloud-&gt;points[i].x, cloud-&gt;points[i].y, cloud-&gt;points[i].z);</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    line_2-&gt;SetPoint2 (p.x, p.y, p.z);</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    line_2-&gt;Update ();</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    polydata_2-&gt;AddInput (line_2-&gt;GetOutput ());</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    polydata_2-&gt;AddInputData (line_2-&gt;GetOutput ());</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160; </div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    line_2_colors-&gt;InsertNextTupleValue (blue);</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;  }</div>
<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;  polydata_2-&gt;Update ();</div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> line_2_data = polydata_2-&gt;GetOutput ();</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;  line_2_data-&gt;GetCellData ()-&gt;SetScalars (line_2_colors);</div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160; </div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;  <span class="comment">// Assemble the two sets of lines</span></div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;</a> alldata = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  alldata-&gt;AddInput (line_1_data);</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;  alldata-&gt;AddInput (line_2_data);</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;  alldata-&gt;AddInputData (line_1_data);</div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;  alldata-&gt;AddInputData (line_2_data);</div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160; </div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (alldata-&gt;GetOutput (), actor);</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;  actor-&gt;GetMapper ()-&gt;SetScalarModeToUseCellData ();</div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160; </div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160; </div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;  CloudActor act;</div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  act.actor = actor;</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;  (*cloud_actor_map_)[id] = act;</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_af16a62638198313b9c093127c492c884"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">pcl::PointCloud::points</a></div><div class="ttdeci">std::vector&lt; PointT, Eigen::aligned_allocator&lt; PointT &gt; &gt; points</div><div class="ttdoc">The point data.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:410</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a34eb31933462ec68c91adf216aecdd57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34eb31933462ec68c91adf216aecdd57">&#9670;&nbsp;</a></span>addPolygon() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolygon </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_planar_polygon.html">pcl::PlanarPolygon</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>polygon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a planar polygon that represents the input point cloud (connects all points in order) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polygon</td><td>the polygon to draw </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon id/name (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;{</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSet&gt;</a> data = createPolygon&lt;PointT&gt; (polygon);</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  <span class="keywordflow">if</span> (!data)</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;  ShapeActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  <span class="keywordflow">if</span> (am_it != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  {</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;</a> all_data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="comment">// Add old data</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    all_data-&gt;AddInput (<span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> ((vtkActor::SafeDownCast (am_it-&gt;second))-&gt;GetMapper ())-&gt;GetInput ());</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    all_data-&gt;AddInputData (<span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> ((vtkActor::SafeDownCast (am_it-&gt;second))-&gt;GetMapper ())-&gt;GetInput ());</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="comment">// Add new data</span></div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetSurfaceFilter&gt;</a> surface_filter = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetSurfaceFilter&gt;::New</a> ();</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    surface_filter-&gt;SetInput (vtkUnstructuredGrid::SafeDownCast (data));</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    surface_filter-&gt;SetInputData (vtkUnstructuredGrid::SafeDownCast (data));</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> poly_data = surface_filter-&gt;GetOutput ();</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    all_data-&gt;AddInput (poly_data);</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    all_data-&gt;AddInputData (poly_data);</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkActor&gt;</a> actor;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (all_data-&gt;GetOutput (), actor);</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    actor-&gt;GetMapper ()-&gt;ScalarVisibilityOn ();</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    actor-&gt;GetProperty ()-&gt;BackfaceCullingOff ();</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3d9fe46ae2020e73cb5ed747b6ead5f1">removeActorFromRenderer</a> (am_it-&gt;second, viewport);</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;  }</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;  {</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkActor&gt;</a> actor;</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (data, actor);</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    actor-&gt;GetMapper ()-&gt;ScalarVisibilityOn ();</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    actor-&gt;GetProperty ()-&gt;BackfaceCullingOff ();</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160; </div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  }</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a3d9fe46ae2020e73cb5ed747b6ead5f1"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3d9fe46ae2020e73cb5ed747b6ead5f1">pcl::visualization::PCLVisualizer::removeActorFromRenderer</a></div><div class="ttdeci">bool removeActorFromRenderer(const vtkSmartPointer&lt; vtkLODActor &gt; &amp;actor, int viewport=0)</div><div class="ttdoc">Internal method. Removes a vtk actor from the screen.</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a05dd41c59b8323e9b5153aab7c45e1d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05dd41c59b8323e9b5153aab7c45e1d4">&#9670;&nbsp;</a></span>addPolygon() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolygon </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a polygon (polyline) that represents the input point cloud (connects all points in order) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the point cloud dataset representing the polygon </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon id/name (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  <span class="keywordflow">return</span> (!addPolygon&lt;PointT&gt; (cloud, 0.5, 0.5, 0.5, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a53bdfc5812684721a5f47ff7da42f5c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53bdfc5812684721a5f47ff7da42f5c8">&#9670;&nbsp;</a></span>addPolygon() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolygon </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a polygon (polyline) that represents the input point cloud (connects all points in order) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the point cloud dataset representing the polygon </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the polygon should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>(optional) the polygon id/name (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;{</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSet&gt;</a> data = createPolygon&lt;PointT&gt; (cloud);</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;  <span class="keywordflow">if</span> (!data)</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;  ShapeActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;  <span class="keywordflow">if</span> (am_it != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;  {</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;</a> all_data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkAppendPolyData&gt;::New</a> ();</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    </div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="comment">// Add old data</span></div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    all_data-&gt;AddInput (<span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> ((vtkActor::SafeDownCast (am_it-&gt;second))-&gt;GetMapper ())-&gt;GetInput ());</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    all_data-&gt;AddInputData (<span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> ((vtkActor::SafeDownCast (am_it-&gt;second))-&gt;GetMapper ())-&gt;GetInput ());</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="comment">// Add new data</span></div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetSurfaceFilter&gt;</a> surface_filter = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataSetSurfaceFilter&gt;::New</a> ();</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    surface_filter-&gt;AddInput (vtkUnstructuredGrid::SafeDownCast (data));</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    surface_filter-&gt;AddInputData (vtkUnstructuredGrid::SafeDownCast (data));</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> poly_data = surface_filter-&gt;GetOutput ();</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    all_data-&gt;AddInput (poly_data);</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    all_data-&gt;AddInputData (poly_data);</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160; </div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkActor&gt;</a> actor;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (all_data-&gt;GetOutput (), actor);</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    actor-&gt;GetMapper ()-&gt;ScalarVisibilityOff ();</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3d9fe46ae2020e73cb5ed747b6ead5f1">removeActorFromRenderer</a> (am_it-&gt;second, viewport);</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160; </div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;  }</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  {</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkActor&gt;</a> actor;</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (data, actor);</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    actor-&gt;GetProperty ()-&gt;SetRepresentationToWireframe ();</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    actor-&gt;GetMapper ()-&gt;ScalarVisibilityOff ();</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;  }</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a04b488bead8ef944b22690be9f768e24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04b488bead8ef944b22690be9f768e24">&#9670;&nbsp;</a></span>addPolygonMesh() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;&#160;</td>
          <td class="paramname"><em>polymesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polymesh</td><td>the polygonal mesh </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a41454a3339e4ad13337901e2b5e55d2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41454a3339e4ad13337901e2b5e55d2f">&#9670;&nbsp;</a></span>addPolygonMesh() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structpcl_1_1_vertices.html">pcl::Vertices</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the polygonal mesh point cloud </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">vertices</td><td>the polygonal mesh vertices </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;{</div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;  <span class="keywordflow">if</span> (vertices.empty () || cloud-&gt;points.empty ())</div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; </div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;  {</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addPolygonMesh] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;  }</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; </div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;  <span class="keywordtype">int</span> rgb_idx = -1;</div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;  std::vector&lt;pcl::PCLPointField&gt; fields;</div>
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;</a> colors;</div>
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;  rgb_idx = <a class="code" href="group__common.html#ga2bc4b9a4e25de1d0b00db4e41f0ad682">pcl::getFieldIndex</a> (*cloud, <span class="stringliteral">&quot;rgb&quot;</span>, fields);</div>
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;  <span class="keywordflow">if</span> (rgb_idx == -1)</div>
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    rgb_idx = <a class="code" href="group__common.html#ga2bc4b9a4e25de1d0b00db4e41f0ad682">pcl::getFieldIndex</a> (*cloud, <span class="stringliteral">&quot;rgba&quot;</span>, fields);</div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;  <span class="keywordflow">if</span> (rgb_idx != -1)</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;  {</div>
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    colors = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnsignedCharArray&gt;::New</a> ();</div>
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    colors-&gt;SetNumberOfComponents (3);</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    colors-&gt;SetName (<span class="stringliteral">&quot;Colors&quot;</span>);</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; </div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;    <a class="code" href="structpcl_1_1_r_g_b.html">pcl::RGB</a> rgb_data;</div>
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; cloud-&gt;size (); ++i)</div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;    {</div>
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;      <span class="keywordflow">if</span> (!isFinite (cloud-&gt;points[i]))</div>
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;      memcpy (&amp;rgb_data, <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span> (&amp;cloud-&gt;points[i]) + fields[rgb_idx].offset, sizeof (<a class="code" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>));</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;      <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> color[3];</div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;      color[0] = rgb_data.r;</div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;      color[1] = rgb_data.g;</div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;      color[2] = rgb_data.b;</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;      colors-&gt;InsertNextTupleValue (color);</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;    }</div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;  }</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; </div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;  <span class="comment">// Create points from polyMesh.cloud</span></div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;::New</a> ();</div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;  vtkIdType nr_points = cloud-&gt;points.size ();</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;  points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; </div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;  <span class="comment">// Get a pointer to the beginning of the data array</span></div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;  <span class="keywordtype">float</span> *data = <span class="keyword">static_cast&lt;</span>vtkFloatArray*<span class="keyword">&gt;</span> (points-&gt;GetData ())-&gt;GetPointer (0);</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; </div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;  <span class="keywordtype">int</span> ptr = 0;</div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;  std::vector&lt;int&gt; lookup;</div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;  <span class="comment">// If the dataset is dense (no NaNs)</span></div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;  <span class="keywordflow">if</span> (cloud-&gt;is_dense)</div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;  {</div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i, ptr += 3)</div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;      memcpy (&amp;data[ptr], &amp;cloud-&gt;points[i].x, sizeof (<span class="keywordtype">float</span>) * 3);</div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;  }</div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;  {</div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;    lookup.resize (nr_points);</div>
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    vtkIdType j = 0;    <span class="comment">// true point index</span></div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i)</div>
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;    {</div>
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;      <span class="comment">// Check if the point is invalid</span></div>
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;      <span class="keywordflow">if</span> (!isFinite (cloud-&gt;points[i]))</div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; </div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;      lookup[i] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (j);</div>
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;      memcpy (&amp;data[ptr], &amp;cloud-&gt;points[i].x, sizeof (<span class="keywordtype">float</span>) * 3);</div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;      j++;</div>
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;      ptr += 3;</div>
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;    }</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    nr_points = j;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;  }</div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; </div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;  <span class="comment">// Get the maximum size of a polygon</span></div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;  <span class="keywordtype">int</span> max_size_of_polygon = -1;</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vertices.size (); ++i)</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    <span class="keywordflow">if</span> (max_size_of_polygon &lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (vertices[i].vertices.size ()))</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;      max_size_of_polygon = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (vertices[i].vertices.size ());</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; </div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;  <span class="keywordflow">if</span> (vertices.size () &gt; 1)</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;  {</div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;    <span class="comment">// Create polys from polyMesh.polygons</span></div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> cell_array = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    vtkIdType *cell = cell_array-&gt;WritePointer (vertices.size (), vertices.size () * (max_size_of_polygon + 1));</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    <span class="keywordtype">int</span> idx = 0;</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    <span class="keywordflow">if</span> (lookup.size () &gt; 0)</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    {</div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vertices.size (); ++i, ++idx)</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;      {</div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;        <span class="keywordtype">size_t</span> n_points = vertices[i].vertices.size ();</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;        *cell++ = n_points;</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;        <span class="comment">//cell_array-&gt;InsertNextCell (n_points);</span></div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; n_points; j++, ++idx)</div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;          *cell++ = lookup[vertices[i].vertices[j]];</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;          <span class="comment">//cell_array-&gt;InsertCellPoint (lookup[vertices[i].vertices[j]]);</span></div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;      }</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    }</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    {</div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vertices.size (); ++i, ++idx)</div>
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;      {</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;        <span class="keywordtype">size_t</span> n_points = vertices[i].vertices.size ();</div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;        *cell++ = n_points;</div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;        <span class="comment">//cell_array-&gt;InsertNextCell (n_points);</span></div>
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; n_points; j++, ++idx)</div>
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;          *cell++ = vertices[i].vertices[j];</div>
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;          <span class="comment">//cell_array-&gt;InsertCellPoint (vertices[i].vertices[j]);</span></div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;      }</div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    }</div>
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata;</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">allocVtkPolyData</a> (polydata);</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;    cell_array-&gt;GetData ()-&gt;SetNumberOfValues (idx);</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    cell_array-&gt;Squeeze ();</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;    polydata-&gt;SetPolys (cell_array);</div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    polydata-&gt;SetPoints (points);</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;  </div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;    <span class="keywordflow">if</span> (colors)</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;      polydata-&gt;GetPointData ()-&gt;SetScalars (colors);</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; </div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (polydata, actor, <span class="keyword">false</span>);</div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;  }</div>
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;  {</div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolygon&gt;</a> polygon = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolygon&gt;::New</a> ();</div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;    <span class="keywordtype">size_t</span> n_points = vertices[0].vertices.size ();</div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;    polygon-&gt;GetPointIds ()-&gt;SetNumberOfIds (n_points - 1);</div>
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; </div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;    <span class="keywordflow">if</span> (lookup.size () &gt; 0)</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;    {</div>
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; (n_points - 1); ++j)</div>
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;        polygon-&gt;GetPointIds ()-&gt;SetId (j, lookup[vertices[0].vertices[j]]);</div>
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;    }</div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;    {</div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; (n_points - 1); ++j)</div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;        polygon-&gt;GetPointIds ()-&gt;SetId (j, vertices[0].vertices[j]);</div>
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;    }</div>
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;    <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkUnstructuredGrid&gt;</a> poly_grid;</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac12c859ad53f63012e46ecd826d9f56d">allocVtkUnstructuredGrid</a> (poly_grid);</div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;    poly_grid-&gt;Allocate (1, 1);</div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;    poly_grid-&gt;InsertNextCell (polygon-&gt;GetCellType (), polygon-&gt;GetPointIds ());</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;    poly_grid-&gt;SetPoints (points);</div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;    <span class="keywordflow">if</span> (colors)</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;      poly_grid-&gt;GetPointData ()-&gt;SetScalars (colors);</div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; </div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (poly_grid, actor, <span class="keyword">false</span>);</div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;  }</div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;  actor-&gt;GetProperty ()-&gt;SetRepresentationToSurface ();</div>
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;  <span class="comment">// Backface culling renders the visualization slower, but guarantees that we see all triangles</span></div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;  actor-&gt;GetProperty ()-&gt;BackfaceCullingOff ();</div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;  actor-&gt;GetProperty ()-&gt;SetInterpolationToFlat ();</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;  actor-&gt;GetProperty ()-&gt;EdgeVisibilityOff ();</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;  actor-&gt;GetProperty ()-&gt;ShadingOff ();</div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; </div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;  (*cloud_actor_map_)[id].actor = actor;</div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; </div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;  <span class="comment">// Save the viewpoint transformation matrix to the global actor map</span></div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;</a> transformation = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;::New</a>();</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (cloud-&gt;sensor_origin_, cloud-&gt;sensor_orientation_, transformation);</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;  (*cloud_actor_map_)[id].viewpoint_transformation_ = transformation;</div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; </div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a562d1232dd90f24511786a7220973f05"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">pcl::visualization::PCLVisualizer::allocVtkPolyData</a></div><div class="ttdeci">void allocVtkPolyData(vtkSmartPointer&lt; vtkAppendPolyData &gt; &amp;polydata)</div><div class="ttdoc">Allocate a new polydata smartpointer. Internal</div></div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_ac12c859ad53f63012e46ecd826d9f56d"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac12c859ad53f63012e46ecd826d9f56d">pcl::visualization::PCLVisualizer::allocVtkUnstructuredGrid</a></div><div class="ttdeci">void allocVtkUnstructuredGrid(vtkSmartPointer&lt; vtkUnstructuredGrid &gt; &amp;polydata)</div><div class="ttdoc">Allocate a new unstructured grid smartpointer. Internal</div></div>
<div class="ttc" id="agroup__common_html_ga2bc4b9a4e25de1d0b00db4e41f0ad682"><div class="ttname"><a href="group__common.html#ga2bc4b9a4e25de1d0b00db4e41f0ad682">pcl::getFieldIndex</a></div><div class="ttdeci">int getFieldIndex(const pcl::PCLPointCloud2 &amp;cloud, const std::string &amp;field_name)</div><div class="ttdoc">Get the index of a specified field (i.e., dimension/channel)</div><div class="ttdef"><b>Definition:</b> io.h:59</div></div>
<div class="ttc" id="astructpcl_1_1_r_g_b_html"><div class="ttname"><a href="structpcl_1_1_r_g_b.html">pcl::RGB</a></div><div class="ttdoc">A structure representing RGB color information.</div><div class="ttdef"><b>Definition:</b> point_types.hpp:334</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="acdd609fc73307b6536b9676f02c1206e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdd609fc73307b6536b9676f02c1206e">&#9670;&nbsp;</a></span>addPolylineFromPolygonMesh()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addPolylineFromPolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;&#160;</td>
          <td class="paramname"><em>polymesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polyline&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a Polygonline from a polygonMesh object to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polymesh</td><td>the polygonal mesh from where the polylines will be extracted </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "polygon") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="affdb5a5daae78bed40e42b9343bbd075"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affdb5a5daae78bed40e42b9343bbd075">&#9670;&nbsp;</a></span>addSphere() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addSphere </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> &amp;&#160;</td>
          <td class="paramname"><em>coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;sphere&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a sphere from a set of given model coefficients </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">coefficients</td><td>the model coefficients (sphere center, radius) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the sphere id/name (default: "sphere") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0)</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// The following are given (or computed using sample consensus techniques)</span></div>
<div class="line"><span class="comment">// See SampleConsensusModelSphere for more information</span></div>
<div class="line"><span class="comment">// Eigen::Vector3f sphere_center;</span></div>
<div class="line"><span class="comment">// float radius;</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structpcl_1_1_model_coefficients.html">pcl::ModelCoefficients</a> sphere_coeff;</div>
<div class="line">sphere_coeff.values.resize (4);    <span class="comment">// We need 4 values</span></div>
<div class="line">sphere_coeff.values[0] = sphere_center.x ();</div>
<div class="line">sphere_coeff.values[1] = sphere_center.y ();</div>
<div class="line">sphere_coeff.values[2] = sphere_center.z ();</div>
<div class="line"> </div>
<div class="line">sphere_coeff.values[3] = radius;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19fb5e883c70c32e1486e924469217f3">addSphere</a> (sphere_coeff);</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a19fb5e883c70c32e1486e924469217f3"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19fb5e883c70c32e1486e924469217f3">pcl::visualization::PCLVisualizer::addSphere</a></div><div class="ttdeci">bool addSphere(const PointT &amp;center, double radius, const std::string &amp;id=&quot;sphere&quot;, int viewport=0)</div><div class="ttdoc">Add a sphere shape from a point and a radius</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.hpp:616</div></div>
</div><!-- fragment --> 
</div>
</div>
<a id="a19fb5e883c70c32e1486e924469217f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19fb5e883c70c32e1486e924469217f3">&#9670;&nbsp;</a></span>addSphere() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addSphere </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;sphere&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a sphere shape from a point and a radius </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">center</td><td>the center of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">radius</td><td>the radius of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the sphere id/name (default: "sphere") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;{</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19fb5e883c70c32e1486e924469217f3">addSphere</a> (center, radius, 0.5, 0.5, 0.5, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac8ad46c3a2adb617ffe20f3f3351dcde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8ad46c3a2adb617ffe20f3f3351dcde">&#9670;&nbsp;</a></span>addSphere() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addSphere </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;sphere&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a sphere shape from a point and a radius </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">center</td><td>the center of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">radius</td><td>the radius of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the sphere id/name (default: "sphere") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>(optional) the id of the new viewport (default: 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;{</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  {</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addSphere] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;  }</div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160; </div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkSphereSource&gt;</a> data = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkSphereSource&gt;::New</a> ();</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;  data-&gt;SetRadius (radius);</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  data-&gt;SetCenter (<span class="keywordtype">double</span> (center.x), double (center.y), double (center.z));</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  data-&gt;SetPhiResolution (10);</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;  data-&gt;SetThetaResolution (10);</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  data-&gt;LatLongTessellationOff ();</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;  data-&gt;Update ();</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160; </div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  <span class="comment">// Setup actor and mapper </span></div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer &lt;vtkPolyDataMapper&gt;</a> mapper = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New</a> ();</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  mapper-&gt;SetInputConnection (data-&gt;GetOutputPort ());</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160; </div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;::New</a> ();</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  actor-&gt;SetMapper (mapper);</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;  <span class="comment">//createActorFromVTKDataSet (data, actor);</span></div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;  actor-&gt;GetProperty ()-&gt;SetRepresentationToSurface ();</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  actor-&gt;GetProperty ()-&gt;SetInterpolationToFlat ();</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  actor-&gt;GetMapper ()-&gt;ImmediateModeRenderingOn ();</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;  actor-&gt;GetMapper ()-&gt;StaticOn ();</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  actor-&gt;GetMapper ()-&gt;ScalarVisibilityOff ();</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  actor-&gt;GetMapper ()-&gt;Update ();</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160; </div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;  (*shape_actor_map_)[id] = actor;</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5e43d3eaf048b8cd9407658a2739c22b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e43d3eaf048b8cd9407658a2739c22b">&#9670;&nbsp;</a></span>addText() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to add </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the X position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the Y position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3a7f8d9aa3cdb72f79082a925b8b3196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a7f8d9aa3cdb72f79082a925b8b3196">&#9670;&nbsp;</a></span>addText() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to add </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the X position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the Y position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a93606247edd980bac7e33f984d0a3391"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93606247edd980bac7e33f984d0a3391">&#9670;&nbsp;</a></span>addText() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fontsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to add </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the X position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the Y position on screen where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fontsize</td><td>the fontsize of the text </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a81eef75fbd6f48f851c5847b75e1f59c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81eef75fbd6f48f851c5847b75e1f59c">&#9670;&nbsp;</a></span>addText3D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addText3D </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>textScale</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em> = <code>1.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a 3d text to the scene </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to add </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">position</td><td>the world position where the text should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">textScale</td><td>the scale of the text to render </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;{</div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  std::string tid;</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;  <span class="keywordflow">if</span> (<span class="keywordtype">id</span>.empty ())</div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    tid = text;</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    tid = id;</div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160; </div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (tid))</div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;  {</div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[addText3D] The id &lt;%s&gt; already exists! Please choose a different id and retry.\n&quot;</span>, <span class="keywordtype">id</span>.c_str ());</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;  }</div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160; </div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkVectorText&gt;</a> textSource = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkVectorText&gt;::New</a> ();</div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;  textSource-&gt;SetText (text.c_str());</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;  textSource-&gt;Update ();</div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160; </div>
<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyDataMapper&gt;</a> textMapper = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New</a> ();</div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;  textMapper-&gt;SetInputConnection (textSource-&gt;GetOutputPort ());</div>
<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160; </div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;  <span class="comment">// Since each follower may follow a different camera, we need different followers</span></div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a45bf60aa2da1c1517b95192da3e9045f">rens_</a>-&gt;InitTraversal ();</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;  vtkRenderer* renderer = NULL;</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;  <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  <span class="keywordflow">while</span> ((renderer = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a45bf60aa2da1c1517b95192da3e9045f">rens_</a>-&gt;GetNextItem ()) != NULL)</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;  {</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="comment">// Should we add the actor to all renderers or just to i-nth renderer?</span></div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keywordflow">if</span> (viewport == 0 || viewport == i)</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    {</div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;      <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFollower&gt;</a> textActor = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkFollower&gt;::New</a> ();</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;      textActor-&gt;SetMapper (textMapper);</div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;      textActor-&gt;SetPosition (position.x, position.y, position.z);</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;      textActor-&gt;SetScale (textScale);</div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;      textActor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;      textActor-&gt;SetCamera (renderer-&gt;GetActiveCamera ());</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160; </div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;      renderer-&gt;AddActor (textActor);</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;      renderer-&gt;Render ();</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; </div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;      <span class="comment">// Save the pointer/ID pair to the global actor map. If we are saving multiple vtkFollowers</span></div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;      <span class="comment">// for multiple viewport</span></div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;      std::string alternate_tid = tid;</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;      alternate_tid.append(i, <span class="charliteral">&#39;*&#39;</span>);</div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160; </div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;      (*shape_actor_map_)[(viewport == 0) ? tid : alternate_tid] = textActor;</div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    }</div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160; </div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    ++i;</div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;  }</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160; </div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a45bf60aa2da1c1517b95192da3e9045f"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a45bf60aa2da1c1517b95192da3e9045f">pcl::visualization::PCLVisualizer::rens_</a></div><div class="ttdeci">vtkSmartPointer&lt; vtkRendererCollection &gt; rens_</div><div class="ttdoc">The collection of renderers used.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.h:1982</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1aa779bbc5e6a2aebf4b72e66676f04f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1aa779bbc5e6a2aebf4b72e66676f04f">&#9670;&nbsp;</a></span>addTextureMesh()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::addTextureMesh </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_texture_mesh.html">pcl::TextureMesh</a> &amp;&#160;</td>
          <td class="paramname"><em>polymesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;texture&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a <a class="el" href="structpcl_1_1_texture_mesh.html">TextureMesh</a> object to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polymesh</td><td>the textured polygonal mesh </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the texture mesh object id (default: "texture") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the <a class="el" href="structpcl_1_1_texture_mesh.html">TextureMesh</a> should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a562d1232dd90f24511786a7220973f05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a562d1232dd90f24511786a7220973f05">&#9670;&nbsp;</a></span>allocVtkPolyData() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::allocVtkPolyData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkAppendPolyData &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate a new polydata smartpointer. Internal </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant poly data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aaf67756162b77a0fbd3aa5abb1e988ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf67756162b77a0fbd3aa5abb1e988ec">&#9670;&nbsp;</a></span>allocVtkPolyData() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::allocVtkPolyData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate a new polydata smartpointer. Internal </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant poly data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac12c859ad53f63012e46ecd826d9f56d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac12c859ad53f63012e46ecd826d9f56d">&#9670;&nbsp;</a></span>allocVtkUnstructuredGrid()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::allocVtkUnstructuredGrid </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkUnstructuredGrid &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate a new unstructured grid smartpointer. Internal </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant poly data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a666a92ada0763bec359b8f1551c9efd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a666a92ada0763bec359b8f1551c9efd5">&#9670;&nbsp;</a></span>cameraFileLoaded()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::cameraFileLoaded </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks whether a camera file were automatically loaded. </p>
<dl class="section return"><dt>返回</dt><dd>True if a valid camera file is automatically loaded. </dd></dl>
<dl class="section note"><dt>注解</dt><dd>The camera file is saved by pressing "ctrl + s" during last run of the program and restored automatically when the program runs this time. </dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a564610bf568b4cfb257a1176b04154bf" title="Checks whether the camera parameters were manually loaded.">cameraParamsSet</a> () </dd></dl>

</div>
</div>
<a id="a564610bf568b4cfb257a1176b04154bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a564610bf568b4cfb257a1176b04154bf">&#9670;&nbsp;</a></span>cameraParamsSet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::cameraParamsSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks whether the camera parameters were manually loaded. </p>
<dl class="section return"><dt>返回</dt><dd>True if valid "-cam" option is available in command line. </dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a666a92ada0763bec359b8f1551c9efd5" title="Checks whether a camera file were automatically loaded.">cameraFileLoaded</a> () </dd></dl>

</div>
</div>
<a id="abaf97c77fe52b4db363ddb5890f1b74f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaf97c77fe52b4db363ddb5890f1b74f">&#9670;&nbsp;</a></span>contains()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::contains </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the cloud, shape, or coordinate with the given id was already added to this visualizer. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the id of the cloud, shape, or coordinate to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if a cloud, shape, or coordinate with the specified id was found </dd></dl>
<div class="fragment"><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        {</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>) != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end () ||</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;                  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>) != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;end () ||</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;                  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a368699c6820d06531c4cf22441ea5af1">coordinate_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>) != <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a368699c6820d06531c4cf22441ea5af1">coordinate_actor_map_</a>-&gt; end());</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a368699c6820d06531c4cf22441ea5af1"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a368699c6820d06531c4cf22441ea5af1">pcl::visualization::PCLVisualizer::coordinate_actor_map_</a></div><div class="ttdeci">CoordinateActorMapPtr coordinate_actor_map_</div><div class="ttdoc">Internal list with actor pointers and viewpoint for coordinates.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.h:1997</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a355e5308dfa99f3c637f0cb40b4b7bb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a355e5308dfa99f3c637f0cb40b4b7bb7">&#9670;&nbsp;</a></span>convertPointCloudToVTKPolyData() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::convertPointCloudToVTKPolyData </td>
          <td>(</td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;&#160;</td>
          <td class="paramname"><em>initcells</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometry handler object used to extract the XYZ data </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant polydata containing the cloud </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">initcells</td><td>a list of cell indices used for the conversion. This can be set once and then passed around to speed up the conversion. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0b617a4ed966632827fe853d6904996a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b617a4ed966632827fe853d6904996a">&#9670;&nbsp;</a></span>convertPointCloudToVTKPolyData() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::convertPointCloudToVTKPolyData </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;&#160;</td>
          <td class="paramname"><em>initcells</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometry handler object used to extract the XYZ data </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant polydata containing the cloud </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">initcells</td><td>a list of cell indices used for the conversion. This can be set once and then passed around to speed up the conversion. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;{</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> vertices;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;  <span class="keywordflow">if</span> (!polydata)</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;  {</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">allocVtkPolyData</a> (polydata);</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    vertices = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    polydata-&gt;SetVerts (vertices);</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;  }</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;  <span class="comment">// Use the handler to obtain the geometry</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points;</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;  geometry_handler.getGeometry (points);</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;  polydata-&gt;SetPoints (points);</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;  vtkIdType nr_points = points-&gt;GetNumberOfPoints ();</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;  <span class="comment">// Create the supporting structures</span></div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;  vertices = polydata-&gt;GetVerts ();</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;  <span class="keywordflow">if</span> (!vertices)</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    vertices = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> cells = vertices-&gt;GetData ();</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">updateCells</a> (cells, initcells, nr_points);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;  <span class="comment">// Set the cells and the vertices</span></div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;  vertices-&gt;SetCells (nr_points, cells);</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a6107059bfc93543dceb1f88c6f1312ab"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">pcl::visualization::PCLVisualizer::updateCells</a></div><div class="ttdeci">void updateCells(vtkSmartPointer&lt; vtkIdTypeArray &gt; &amp;cells, vtkSmartPointer&lt; vtkIdTypeArray &gt; &amp;initcells, vtkIdType nr_points)</div><div class="ttdoc">Updates a set of cells (vtkIdTypeArray) if the number of points in a cloud changes</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a596ed7f68d3a48b0c16ff0e3141e2a59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a596ed7f68d3a48b0c16ff0e3141e2a59">&#9670;&nbsp;</a></span>convertPointCloudToVTKPolyData() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::convertPointCloudToVTKPolyData </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkPolyData &gt; &amp;&#160;</td>
          <td class="paramname"><em>polydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;&#160;</td>
          <td class="paramname"><em>initcells</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts a PCL templated <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> object to a vtk polydata object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input PCL <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> dataset </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">polydata</td><td>the resultant polydata containing the cloud </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">initcells</td><td>a list of cell indices used for the conversion. This can be set once and then passed around to speed up the conversion. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;{</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> vertices;</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;  <span class="keywordflow">if</span> (!polydata)</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;  {</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a562d1232dd90f24511786a7220973f05">allocVtkPolyData</a> (polydata);</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    vertices = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    polydata-&gt;SetVerts (vertices);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;  }</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <span class="comment">// Create the supporting structures</span></div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  vertices = polydata-&gt;GetVerts ();</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  <span class="keywordflow">if</span> (!vertices)</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    vertices = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  vtkIdType nr_points = cloud-&gt;points.size ();</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  <span class="comment">// Create the point set</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points = polydata-&gt;GetPoints ();</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;  <span class="keywordflow">if</span> (!points)</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  {</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    points = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;::New</a> ();</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    points-&gt;SetDataTypeToFloat ();</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    polydata-&gt;SetPoints (points);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  }</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;  <span class="comment">// Get a pointer to the beginning of the data array</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;  <span class="keywordtype">float</span> *data = (<span class="keyword">static_cast&lt;</span>vtkFloatArray*<span class="keyword">&gt;</span> (points-&gt;GetData ()))-&gt;GetPointer (0);</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  <span class="comment">// Set the points</span></div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;  <span class="keywordflow">if</span> (cloud-&gt;is_dense)</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;  {</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i)</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;      memcpy (&amp;data[i * 3], &amp;cloud-&gt;points[i].x, 12);    <span class="comment">// sizeof (float) * 3</span></div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;  }</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  {</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    vtkIdType j = 0;    <span class="comment">// true point index</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i)</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    {</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;      <span class="comment">// Check if the point is invalid</span></div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;      <span class="keywordflow">if</span> (!pcl_isfinite (cloud-&gt;points[i].x) ||</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;          !pcl_isfinite (cloud-&gt;points[i].y) ||</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;          !pcl_isfinite (cloud-&gt;points[i].z))</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;      memcpy (&amp;data[j * 3], &amp;cloud-&gt;points[i].x, 12);    <span class="comment">// sizeof (float) * 3</span></div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;      j++;</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    nr_points = j;</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  }</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> cells = vertices-&gt;GetData ();</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">updateCells</a> (cells, initcells, nr_points);</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;  <span class="comment">// Set the cells and the vertices</span></div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  vertices-&gt;SetCells (nr_points, cells);</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="accebdc4ad4d25b071a0cf9daa1094086"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accebdc4ad4d25b071a0cf9daa1094086">&#9670;&nbsp;</a></span>convertToEigenMatrix()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::visualization::PCLVisualizer::convertToEigenMatrix </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;&#160;</td>
          <td class="paramname"><em>vtk_matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>m</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert vtkMatrix4x4 to an Eigen4f </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">vtk_matrix</td><td>the original VTK 4x4 matrix </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">m</td><td>the resultant Eigen 4x4 matrix </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a19ffbabe8b9e443944a340b3503c27df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19ffbabe8b9e443944a340b3503c27df">&#9670;&nbsp;</a></span>convertToVtkMatrix() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::visualization::PCLVisualizer::convertToVtkMatrix </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;&#160;</td>
          <td class="paramname"><em>vtk_matrix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert Eigen::Matrix4f to vtkMatrix4x4 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>the input Eigen matrix </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">vtk_matrix</td><td>the resultant VTK matrix </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a74fc7ab5f8f8e3664556081fa6883004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74fc7ab5f8f8e3664556081fa6883004">&#9670;&nbsp;</a></span>convertToVtkMatrix() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::visualization::PCLVisualizer::convertToVtkMatrix </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkMatrix4x4 &gt; &amp;&#160;</td>
          <td class="paramname"><em>vtk_matrix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert origin and orientation to vtkMatrix4x4 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td>the point cloud origin </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">orientation</td><td>the point cloud orientation </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">vtk_matrix</td><td>the resultant VTK 4x4 matrix </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac15689c03d40f25c24be925e0d302948"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac15689c03d40f25c24be925e0d302948">&#9670;&nbsp;</a></span>createActorFromVTKDataSet() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::createActorFromVTKDataSet </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkDataSet &gt; &amp;&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkActor &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_scalars</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Creates a vtk actor from a vtk polydata object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the vtk polydata object to create an actor for </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">actor</td><td>the resultant vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">use_scalars</td><td>set scalar properties to the mapper if it exists in the data. Default: true. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af141de9f310021d057407363ee0fb9b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af141de9f310021d057407363ee0fb9b3">&#9670;&nbsp;</a></span>createActorFromVTKDataSet() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::createActorFromVTKDataSet </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkDataSet &gt; &amp;&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkLODActor &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_scalars</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Creates a vtk actor from a vtk polydata object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the vtk polydata object to create an actor for </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">actor</td><td>the resultant vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">use_scalars</td><td>set scalar properties to the mapper if it exists in the data. Default: true. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a058ee34b64ae1a1e2852e19c86a208be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a058ee34b64ae1a1e2852e19c86a208be">&#9670;&nbsp;</a></span>createViewPort()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::createViewPort </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>xmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ymin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>xmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ymax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>viewport</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new viewport from [xmin,ymin] -&gt; [xmax,ymax]. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">xmin</td><td>the minimum X coordinate for the viewport (0.0 &lt;= 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ymin</td><td>the minimum Y coordinate for the viewport (0.0 &lt;= 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xmax</td><td>the maximum X coordinate for the viewport (0.0 &lt;= 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ymax</td><td>the maximum Y coordinate for the viewport (0.0 &lt;= 1.0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the id of the new viewport</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>If no renderer for the current window exists, one will be created, and the viewport will be set to 0 ('all'). In case one or multiple renderers do exist, the viewport ID will be set to the total number of renderers - 1. </dd></dl>

</div>
</div>
<a id="a67460d005b094f96f447114ce3e25000"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67460d005b094f96f447114ce3e25000">&#9670;&nbsp;</a></span>createViewPortCamera()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::createViewPortCamera </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>viewport</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new separate camera for the given viewport. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to create a new camera for. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a93c0b3daa672759bc8b81814e854813a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93c0b3daa672759bc8b81814e854813a">&#9670;&nbsp;</a></span>fromHandlersToScreen() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::fromHandlersToScreen </td>
          <td>(</td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em> = <code>Eigen::Vector4f(0,&#160;0,&#160;0,&#160;0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em> = <code>Eigen::Quaternion&lt;&#160;float&#160;&gt;(1,&#160;0,&#160;0,&#160;0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometric handler that contains the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>the color handler that contains the "RGB" (scalar) data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1760149f341ff2ea722e0f0cd033b09d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1760149f341ff2ea722e0f0cd033b09d">&#9670;&nbsp;</a></span>fromHandlersToScreen() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::fromHandlersToScreen </td>
          <td>(</td>
          <td class="paramtype">const GeometryHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em> = <code>Eigen::Vector4f&#160;(0,&#160;0,&#160;0,&#160;0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em> = <code>Eigen::Quaternion&lt;float&gt;&#160;(1,&#160;0,&#160;0&#160;,0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometric handler that contains the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>the color handler that contains the "RGB" (scalar) data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;{</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;  <span class="keywordflow">if</span> (!geometry_handler-&gt;isCapable ())</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;  {</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid geometry handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), geometry_handler-&gt;getName ().c_str ());</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;  }</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; </div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;  <span class="keywordflow">if</span> (!color_handler.isCapable ())</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;  {</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid color handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), color_handler.getName ().c_str ());</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;  }</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; </div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata;</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> initcells;</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a596ed7f68d3a48b0c16ff0e3141e2a59">convertPointCloudToVTKPolyData</a> (geometry_handler, polydata, initcells);</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;  <span class="comment">// use the given geometry handler</span></div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; </div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;  <span class="comment">// Get the colors from the handler</span></div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;  <span class="keywordtype">bool</span> has_colors = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;  <span class="keywordflow">if</span> (color_handler.getColor (scalars))</div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;  {</div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    scalars-&gt;GetRange (minmax);</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    has_colors = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;  }</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; </div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (polydata, actor);</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;  <span class="keywordflow">if</span> (has_colors)</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;    actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; </div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; </div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;  CloudActor&amp; cloud_actor = (*cloud_actor_map_)[id];</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;  cloud_actor.actor = actor;</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;  cloud_actor.cells = initcells;</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;  cloud_actor.geometry_handlers.push_back (geometry_handler);</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; </div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;  <span class="comment">// Save the viewpoint transformation matrix to the global actor map</span></div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;</a> transformation = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;::New</a> ();</div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (sensor_origin, sensor_orientation, transformation);</div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;  cloud_actor.viewpoint_transformation_ = transformation;</div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;  cloud_actor.actor-&gt;SetUserMatrix (transformation);</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;  cloud_actor.actor-&gt;Modified ();</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; </div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a596ed7f68d3a48b0c16ff0e3141e2a59"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a596ed7f68d3a48b0c16ff0e3141e2a59">pcl::visualization::PCLVisualizer::convertPointCloudToVTKPolyData</a></div><div class="ttdeci">void convertPointCloudToVTKPolyData(const typename pcl::PointCloud&lt; PointT &gt;::ConstPtr &amp;cloud, vtkSmartPointer&lt; vtkPolyData &gt; &amp;polydata, vtkSmartPointer&lt; vtkIdTypeArray &gt; &amp;initcells)</div><div class="ttdoc">Converts a PCL templated PointCloud object to a vtk polydata object.</div><div class="ttdef"><b>Definition:</b> pcl_visualizer.hpp:215</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="add7b161ed3e8a0476ba5644010e3301b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add7b161ed3e8a0476ba5644010e3301b">&#9670;&nbsp;</a></span>fromHandlersToScreen() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::fromHandlersToScreen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const ColorHandlerConstPtr &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em> = <code>Eigen::Vector4f&#160;(0,&#160;0,&#160;0,&#160;0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em> = <code>Eigen::Quaternion&lt;float&gt;&#160;(1,&#160;0,&#160;0&#160;,0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometric handler that contains the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>the color handler that contains the "RGB" (scalar) data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;{</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;  <span class="keywordflow">if</span> (!geometry_handler.isCapable ())</div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;  {</div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid geometry handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), geometry_handler.getName ().c_str ());</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;  }</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; </div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;  <span class="keywordflow">if</span> (!color_handler-&gt;isCapable ())</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;  {</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid color handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), color_handler-&gt;getName ().c_str ());</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;  }</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; </div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata;</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> initcells;</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;  convertPointCloudToVTKPolyData&lt;PointT&gt; (geometry_handler, polydata, initcells);</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;  <span class="comment">// use the given geometry handler</span></div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; </div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;  <span class="comment">// Get the colors from the handler</span></div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;  <span class="keywordtype">bool</span> has_colors = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;  <span class="keywordflow">if</span> (color_handler-&gt;getColor (scalars))</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;  {</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;    polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    scalars-&gt;GetRange (minmax);</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    has_colors = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;  }</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; </div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (polydata, actor);</div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;  <span class="keywordflow">if</span> (has_colors)</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; </div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; </div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;  CloudActor&amp; cloud_actor = (*cloud_actor_map_)[id];</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;  cloud_actor.actor = actor;</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;  cloud_actor.cells = initcells;</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;  cloud_actor.color_handlers.push_back (color_handler);</div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; </div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;  <span class="comment">// Save the viewpoint transformation matrix to the global actor map</span></div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;</a> transformation = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;::New</a>();</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (sensor_origin, sensor_orientation, transformation);</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;  cloud_actor.viewpoint_transformation_ = transformation;</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;  cloud_actor.actor-&gt;SetUserMatrix (transformation);</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;  cloud_actor.actor-&gt;Modified ();</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; </div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a749041b9375495588a3e0406e3afec1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a749041b9375495588a3e0406e3afec1f">&#9670;&nbsp;</a></span>fromHandlersToScreen() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::fromHandlersToScreen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>sensor_origin</em> = <code>Eigen::Vector4f&#160;(0,&#160;0,&#160;0,&#160;0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>sensor_orientation</em> = <code>Eigen::Quaternion&lt;float&gt;&#160;(1,&#160;0,&#160;0&#160;,0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal function which converts the information present in the geometric and color handlers into VTK PolyData+Scalars, constructs a vtkActor object, and adds all the required information to the internal cloud_actor_map_ object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometric handler that contains the XYZ data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>the color handler that contains the "RGB" (scalar) data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be added </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_origin</td><td>the origin of the cloud data in global coordinates (defaults to 0,0,0) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_orientation</td><td>the orientation of the cloud data in global coordinates (defaults to 1,0,0,0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;{</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;  <span class="keywordflow">if</span> (!geometry_handler.isCapable ())</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;  {</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid geometry handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), geometry_handler.getName ().c_str ());</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;  }</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; </div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;  <span class="keywordflow">if</span> (!color_handler.isCapable ())</div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;  {</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[fromHandlersToScreen] PointCloud &lt;%s&gt; requested with an invalid color handler (%s)!\n&quot;</span>, <span class="keywordtype">id</span>.c_str (), color_handler.getName ().c_str ());</div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;  }</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; </div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata;</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> initcells;</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;  convertPointCloudToVTKPolyData&lt;PointT&gt; (geometry_handler, polydata, initcells);</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;  <span class="comment">// use the given geometry handler</span></div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; </div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;  <span class="comment">// Get the colors from the handler</span></div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;  <span class="keywordtype">bool</span> has_colors = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;  <span class="keywordflow">if</span> (color_handler.getColor (scalars))</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;  {</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    scalars-&gt;GetRange (minmax);</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    has_colors = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;  }</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; </div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;  <span class="comment">// Create an Actor</span></div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkLODActor&gt;</a> actor;</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#ac15689c03d40f25c24be925e0d302948">createActorFromVTKDataSet</a> (polydata, actor);</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;  <span class="keywordflow">if</span> (has_colors)</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; </div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;  <span class="comment">// Add it to all renderers</span></div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aceae35b37cead83c2e609a28e473a293">addActorToRenderer</a> (actor, viewport);</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; </div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;  <span class="comment">// Save the pointer/ID pair to the global actor map</span></div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;  CloudActor&amp; cloud_actor = (*cloud_actor_map_)[id];</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;  cloud_actor.actor = actor;</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;  cloud_actor.cells = initcells;</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; </div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;  <span class="comment">// Save the viewpoint transformation matrix to the global actor map</span></div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;</a> transformation = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkMatrix4x4&gt;::New</a>();</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a19ffbabe8b9e443944a340b3503c27df">convertToVtkMatrix</a> (sensor_origin, sensor_orientation, transformation);</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;  cloud_actor.viewpoint_transformation_ = transformation;</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;  cloud_actor.actor-&gt;SetUserMatrix (transformation);</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;  cloud_actor.actor-&gt;Modified ();</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; </div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6ca045887418d2ad61b5f5504a3d3546"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ca045887418d2ad61b5f5504a3d3546">&#9670;&nbsp;</a></span>getCameraFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string pcl::visualization::PCLVisualizer::getCameraFile </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get camera file for camera parameter saving/restoring. </p>
<dl class="section note"><dt>注解</dt><dd>This will be valid only when valid "-cam" option were available in command line or a saved camera file were automatically loaded. </dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a564610bf568b4cfb257a1176b04154bf" title="Checks whether the camera parameters were manually loaded.">cameraParamsSet</a> (), <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a666a92ada0763bec359b8f1551c9efd5" title="Checks whether a camera file were automatically loaded.">cameraFileLoaded</a> () </dd></dl>

</div>
</div>
<a id="ab35727cb51cd9cc55b6144e169876511"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab35727cb51cd9cc55b6144e169876511">&#9670;&nbsp;</a></span>getCameraParameters() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::getCameraParameters </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1visualization_1_1_camera.html">Camera</a> &amp;&#160;</td>
          <td class="paramname"><em>camera</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get camera parameters and save them to a <a class="el" href="classpcl_1_1visualization_1_1_camera.html" title="Camera class holds a set of camera parameters together with the window pos/size.">pcl::visualization::Camera</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">camera</td><td>the name of the <a class="el" href="classpcl_1_1visualization_1_1_camera.html" title="Camera class holds a set of camera parameters together with the window pos/size.">pcl::visualization::Camera</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a952c8bbe747026bc41cf6d1f038e69af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a952c8bbe747026bc41cf6d1f038e69af">&#9670;&nbsp;</a></span>getCameraParameters() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::getCameraParameters </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Search for camera parameters at the command line and set them internally. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9d59115a46e6ad99d3d06fc60e0dfbec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d59115a46e6ad99d3d06fc60e0dfbec">&#9670;&nbsp;</a></span>getColorHandlerIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::visualization::PCLVisualizer::getColorHandlerIndex </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the color handler index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a83d9ce86450f060d13ff74f3241bc482"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83d9ce86450f060d13ff74f3241bc482">&#9670;&nbsp;</a></span>getGeometryHandlerIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::visualization::PCLVisualizer::getGeometryHandlerIndex </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the geometry handler index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acde8be1004cd2fd43d8e4287bd726252"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acde8be1004cd2fd43d8e4287bd726252">&#9670;&nbsp;</a></span>getPointCloudRenderingProperties()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::getPointCloudRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the resultant property value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>The list of properties can be found in pcl::visualization::LookUpTableRepresentationProperties. </dd></dl>

</div>
</div>
<a id="a2a7dddda55c760aec1df2b34783ad894"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a7dddda55c760aec1df2b34783ad894">&#9670;&nbsp;</a></span>getTransformationMatrix()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::getTransformationMatrix </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector4f &amp;&#160;</td>
          <td class="paramname"><em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Quaternion&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>transformation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transform the point cloud viewpoint to a transformation matrix </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td>the camera origin </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">orientation</td><td>the camera orientation </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">transformation</td><td>the camera transformation matrix </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a81416a53a7aedefde3afd0109cb57cf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81416a53a7aedefde3afd0109cb57cf8">&#9670;&nbsp;</a></span>getUniqueCameraFile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string pcl::visualization::PCLVisualizer::getUniqueCameraFile </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get camera file for camera parameter saving/restoring from command line. <a class="el" href="classpcl_1_1visualization_1_1_camera.html" title="Camera class holds a set of camera parameters together with the window pos/size.">Camera</a> filename is calculated using sha1 value of all pathes of input .pcd files </p>
<dl class="section return"><dt>返回</dt><dd>empty string if failed. </dd></dl>

</div>
</div>
<a id="a939d25b9e09c722de6cb12e2c9f37290"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a939d25b9e09c722de6cb12e2c9f37290">&#9670;&nbsp;</a></span>loadCameraParameters()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::loadCameraParameters </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load camera parameters from a camera parameters file. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>the name of the camera parameters file </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a150d6a43470df34af858566cb5a67afb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a150d6a43470df34af858566cb5a67afb">&#9670;&nbsp;</a></span>PCL_DEPRECATED() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCL_DEPRECATED </td>
          <td>(</td>
          <td class="paramtype">&quot;addCoordinateSystem (scale, t, viewport) is&#160;</td>
          <td class="paramname"><em>deprecated</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(scale, t, id, viewport) with id a unique string identifier.&quot;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at x, y, z, Roll,Pitch,Yaw </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>transformation matrix </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6cace4bafdfacf96b868ba1bb3c8bc31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cace4bafdfacf96b868ba1bb3c8bc31">&#9670;&nbsp;</a></span>PCL_DEPRECATED() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCL_DEPRECATED </td>
          <td>(</td>
          <td class="paramtype">&quot;addCoordinateSystem (scale, viewport) is&#160;</td>
          <td class="paramname"><em>deprecated</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(scale, id, viewport) with id a unique string identifier.&quot;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at 0,0,0. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a63ef41adf91d884e17c995787fa38388"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63ef41adf91d884e17c995787fa38388">&#9670;&nbsp;</a></span>PCL_DEPRECATED() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCL_DEPRECATED </td>
          <td>(</td>
          <td class="paramtype">&quot;addCoordinateSystem (scale, x, y, z, viewport) is&#160;</td>
          <td class="paramname"><em>deprecated</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(scale, x, y, z, id, viewport) with id a unique string identifier.&quot;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds 3D axes describing a coordinate system to screen at x, y, z </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>the scale of the axes (default: 1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>the X position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>the Y position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">z</td><td>the Z position of the axes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the 3D axes should be added (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a181c28461badfdeaa5112f801c0f78c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a181c28461badfdeaa5112f801c0f78c0">&#9670;&nbsp;</a></span>PCL_DEPRECATED() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::visualization::PCLVisualizer::PCL_DEPRECATED </td>
          <td>(</td>
          <td class="paramtype">&quot;removeCoordinateSystem (viewport) is&#160;</td>
          <td class="paramname"><em>deprecated</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">please use function &quot; &quot;<a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a50bd74511f80f9e1192c4896c87688cc">addCoordinateSystem</a>(id, viewport) with id a unique string identifier.&quot;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes a previously added 3D axes (coordinate system) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port where the 3D axes should be removed from (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8b4cf564406f60a4efa8169233a7a319"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b4cf564406f60a4efa8169233a7a319">&#9670;&nbsp;</a></span>registerAreaPickingCallback() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerAreaPickingCallback </td>
          <td>(</td>
          <td class="paramtype">boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;)&gt;&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback function for area picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a boost function that will be registered as a callback for an area picking event </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a0445f3c59852bff8a9f198de70d4bb77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0445f3c59852bff8a9f198de70d4bb77">&#9670;&nbsp;</a></span>registerAreaPickingCallback() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerAreaPickingCallback </td>
          <td>(</td>
          <td class="paramtype">void(*)(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback function for area picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the function that will be registered as a callback for an area picking event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a0e79d3a939d7d005cdcdd2605569a8ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e79d3a939d7d005cdcdd2605569a8ba">&#9670;&nbsp;</a></span>registerAreaPickingCallback() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerAreaPickingCallback </td>
          <td>(</td>
          <td class="paramtype">void(T::*)(const <a class="el" href="classpcl_1_1visualization_1_1_area_picking_event.html">pcl::visualization::AreaPickingEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for area picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the member function that will be registered as a callback for an area picking event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance to the class that implements the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        {</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8b4cf564406f60a4efa8169233a7a319">registerAreaPickingCallback</a> (boost::bind (callback, boost::ref (instance), _1, cookie)));</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a8b4cf564406f60a4efa8169233a7a319"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8b4cf564406f60a4efa8169233a7a319">pcl::visualization::PCLVisualizer::registerAreaPickingCallback</a></div><div class="ttdeci">boost::signals2::connection registerAreaPickingCallback(boost::function&lt; void(const pcl::visualization::AreaPickingEvent &amp;)&gt; cb)</div><div class="ttdoc">Register a callback function for area picking events</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8db494c058132fbf5f7212fd6f40dfe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8db494c058132fbf5f7212fd6f40dfe7">&#9670;&nbsp;</a></span>registerKeyboardCallback() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerKeyboardCallback </td>
          <td>(</td>
          <td class="paramtype">boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;)&gt;&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback boost::function for keyboard events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a boost function that will be registered as a callback for a keyboard event </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a594112662b806c7989405c5c8e5287a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a594112662b806c7989405c5c8e5287a8">&#9670;&nbsp;</a></span>registerKeyboardCallback() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerKeyboardCallback </td>
          <td>(</td>
          <td class="paramtype">void(*)(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for keyboard events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the function that will be registered as a callback for a keyboard event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        {</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8db494c058132fbf5f7212fd6f40dfe7">registerKeyboardCallback</a> (boost::bind (callback, _1, cookie)));</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a8db494c058132fbf5f7212fd6f40dfe7"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8db494c058132fbf5f7212fd6f40dfe7">pcl::visualization::PCLVisualizer::registerKeyboardCallback</a></div><div class="ttdeci">boost::signals2::connection registerKeyboardCallback(boost::function&lt; void(const pcl::visualization::KeyboardEvent &amp;)&gt; cb)</div><div class="ttdoc">Register a callback boost::function for keyboard events</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a28451798279f2c27f19d48a46c3f694f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28451798279f2c27f19d48a46c3f694f">&#9670;&nbsp;</a></span>registerKeyboardCallback() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerKeyboardCallback </td>
          <td>(</td>
          <td class="paramtype">void(T::*)(const <a class="el" href="classpcl_1_1visualization_1_1_keyboard_event.html">pcl::visualization::KeyboardEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for keyboard events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the member function that will be registered as a callback for a keyboard event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance to the class that implements the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        {</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a8db494c058132fbf5f7212fd6f40dfe7">registerKeyboardCallback</a> (boost::bind (callback,  boost::ref (instance), _1, cookie)));</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aaa2ce79b967d457be9e73112646c0fa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa2ce79b967d457be9e73112646c0fa7">&#9670;&nbsp;</a></span>registerMouseCallback() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerMouseCallback </td>
          <td>(</td>
          <td class="paramtype">boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;)&gt;&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback function for mouse events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a boost function that will be registered as a callback for a mouse event </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a3372891056ceb49dd60ff92bbf16d845"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3372891056ceb49dd60ff92bbf16d845">&#9670;&nbsp;</a></span>registerMouseCallback() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerMouseCallback </td>
          <td>(</td>
          <td class="paramtype">void(*)(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for mouse events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the function that will be registered as a callback for a mouse event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        {</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa2ce79b967d457be9e73112646c0fa7">registerMouseCallback</a> (boost::bind (callback, _1, cookie)));</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_aaa2ce79b967d457be9e73112646c0fa7"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa2ce79b967d457be9e73112646c0fa7">pcl::visualization::PCLVisualizer::registerMouseCallback</a></div><div class="ttdeci">boost::signals2::connection registerMouseCallback(boost::function&lt; void(const pcl::visualization::MouseEvent &amp;)&gt; cb)</div><div class="ttdoc">Register a callback function for mouse events</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af7ff9f38e3729b57722f68ecf756c8d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7ff9f38e3729b57722f68ecf756c8d0">&#9670;&nbsp;</a></span>registerMouseCallback() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerMouseCallback </td>
          <td>(</td>
          <td class="paramtype">void(T::*)(const <a class="el" href="classpcl_1_1visualization_1_1_mouse_event.html">pcl::visualization::MouseEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for mouse events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the member function that will be registered as a callback for a mouse event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance to the class that implements the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        {</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#aaa2ce79b967d457be9e73112646c0fa7">registerMouseCallback</a> (boost::bind (callback, boost::ref (instance), _1, cookie)));</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5ad58f7f8f66ced2a31489ac329a94bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ad58f7f8f66ced2a31489ac329a94bb">&#9670;&nbsp;</a></span>registerPointPickingCallback() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerPointPickingCallback </td>
          <td>(</td>
          <td class="paramtype">boost::function&lt; void(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;)&gt;&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback function for point picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a boost function that will be registered as a callback for a point picking event </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a2f57c96f368bb8e41dc65e8528ac9325"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f57c96f368bb8e41dc65e8528ac9325">&#9670;&nbsp;</a></span>registerPointPickingCallback() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerPointPickingCallback </td>
          <td>(</td>
          <td class="paramtype">void(*)(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a callback function for point picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the function that will be registered as a callback for a point picking event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>

</div>
</div>
<a id="a3a0a0500789b3452d1afa674e4fa4659"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a0a0500789b3452d1afa674e4fa4659">&#9670;&nbsp;</a></span>registerPointPickingCallback() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::signals2::connection pcl::visualization::PCLVisualizer::registerPointPickingCallback </td>
          <td>(</td>
          <td class="paramtype">void(T::*)(const <a class="el" href="classpcl_1_1visualization_1_1_point_picking_event.html">pcl::visualization::PointPickingEvent</a> &amp;, void *)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cookie</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a callback function for point picking events </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the member function that will be registered as a callback for a point picking event </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance to the class that implements the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cookie</td><td>user data that is passed to the callback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>a connection object that allows to disconnect the callback function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        {</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5ad58f7f8f66ced2a31489ac329a94bb">registerPointPickingCallback</a> (boost::bind (callback, boost::ref (instance), _1, cookie)));</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a5ad58f7f8f66ced2a31489ac329a94bb"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a5ad58f7f8f66ced2a31489ac329a94bb">pcl::visualization::PCLVisualizer::registerPointPickingCallback</a></div><div class="ttdeci">boost::signals2::connection registerPointPickingCallback(boost::function&lt; void(const pcl::visualization::PointPickingEvent &amp;)&gt; cb)</div><div class="ttdoc">Register a callback function for point picking events</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ace98baef3c972a5f9bda7493efdac339"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace98baef3c972a5f9bda7493efdac339">&#9670;&nbsp;</a></span>removeActorFromRenderer() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeActorFromRenderer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkActor &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Removes a vtk actor from the screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">actor</td><td>a pointer to the vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the actor should be removed from (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3d9fe46ae2020e73cb5ed747b6ead5f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d9fe46ae2020e73cb5ed747b6ead5f1">&#9670;&nbsp;</a></span>removeActorFromRenderer() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeActorFromRenderer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkLODActor &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Removes a vtk actor from the screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">actor</td><td>a pointer to the vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the actor should be removed from (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a57b11f60d3fda3dea929749bcaf20e01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57b11f60d3fda3dea929749bcaf20e01">&#9670;&nbsp;</a></span>removeActorFromRenderer() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeActorFromRenderer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkProp &gt; &amp;&#160;</td>
          <td class="paramname"><em>actor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal method. Adds a vtk actor to screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">actor</td><td>a pointer to the vtk actor object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the actor should be added to (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4909baa4e145f21069d060625317da34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4909baa4e145f21069d060625317da34">&#9670;&nbsp;</a></span>removeAllCoordinateSystems()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeAllCoordinateSystems </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes all existing 3D axes (coordinate systems) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port where the 3D axes should be removed from (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8deb3d6c61801a1278c641475678b704"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8deb3d6c61801a1278c641475678b704">&#9670;&nbsp;</a></span>removeAllPointClouds()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeAllPointClouds </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove all point cloud data on screen from the given viewport. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the clouds should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa7d86bc003c5ad4c1f630ccd17fd779b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7d86bc003c5ad4c1f630ccd17fd779b">&#9670;&nbsp;</a></span>removeAllShapes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeAllShapes </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove all 3D shape data on screen from the given viewport. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the shapes should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2c4bf3f872837f5a02b21def249640bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c4bf3f872837f5a02b21def249640bb">&#9670;&nbsp;</a></span>removeCoordinateSystem()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeCoordinateSystem </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;reference&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes a previously added 3D axes (coordinate system) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the coordinate system object id (default: reference) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port where the 3D axes should be removed from (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af84f676282ae73187e6c3997fcd80d9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af84f676282ae73187e6c3997fcd80d9f">&#9670;&nbsp;</a></span>removeCorrespondences()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::removeCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove the specified correspondences from the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon correspondences object id (i.e., given on <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a3c20fdb241ea003aff44e9d22c665acc">addCorrespondences</a>) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the correspondences should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a163056dd8efe9cf911b697a6b02addbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a163056dd8efe9cf911b697a6b02addbd">&#9670;&nbsp;</a></span>removePointCloud()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removePointCloud </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> from screen, based on a given ID. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (i.e., given on <em>addPointCloud</em>) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the point cloud is successfully removed and false if the point cloud is not actually displayed </dd></dl>

</div>
</div>
<a id="ab78f35ecd7aec5ce0e04a622b8f53886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab78f35ecd7aec5ce0e04a622b8f53886">&#9670;&nbsp;</a></span>removePolygonMesh()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removePolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> from screen, based on a given ID. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (i.e., given on <em>addPolygonMesh</em>) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        {</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;          <span class="comment">// Polygon Meshes are represented internally as point clouds with special cell array structures since 1.4</span></div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a163056dd8efe9cf911b697a6b02addbd">removePointCloud</a> (<span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1visualization_1_1_p_c_l_visualizer_html_a163056dd8efe9cf911b697a6b02addbd"><div class="ttname"><a href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a163056dd8efe9cf911b697a6b02addbd">pcl::visualization::PCLVisualizer::removePointCloud</a></div><div class="ttdeci">bool removePointCloud(const std::string &amp;id=&quot;cloud&quot;, int viewport=0)</div><div class="ttdoc">Removes a Point Cloud from screen, based on a given ID.</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ada9b2661ed4b49aeec0bb2102fda04c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada9b2661ed4b49aeec0bb2102fda04c3">&#9670;&nbsp;</a></span>removeShape()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeShape </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes an added shape from screen (line, polygon, etc.), based on a given ID </p>
<dl class="section note"><dt>注解</dt><dd>This methods also removes <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> objects and PointClouds, if they match the ID </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the shape object id (i.e., given on <em>addLine</em> etc.) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac2d5958a4cb64fec03e00096f3a0e1eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2d5958a4cb64fec03e00096f3a0e1eb">&#9670;&nbsp;</a></span>removeText3D()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::removeText3D </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes an added 3D text from the scene, based on a given ID </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the 3D text id (i.e., given on <em>addText3D</em> etc.) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>view port from where the 3D text should be removed (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a80bac12c2a49e033e96fa797a4ffa911"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80bac12c2a49e033e96fa797a4ffa911">&#9670;&nbsp;</a></span>renderView()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::renderView </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>yres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::Ptr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Renders a virtual scene as seen from the camera viewpoint and returns the rendered point cloud. ATT: This method will only render the scene if only on viewport exists. Otherwise, returns an empty point cloud and exits immediately. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">xres</td><td>is the size of the window (X) used to render the scene </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">yres</td><td>is the size of the window (Y) used to render the scene </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>is the rendered point cloud </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0811ecc37374264450d8aafbc88b42dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0811ecc37374264450d8aafbc88b42dc">&#9670;&nbsp;</a></span>renderViewTesselatedSphere()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::renderViewTesselatedSphere </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>yres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::CloudVectorType &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>poses</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>enthropies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>tesselation_level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>view_angle</em> = <code>45</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>radius_sphere</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_vertices</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The purpose of this method is to render a CAD model added to the visualizer from different viewpoints in order to simulate partial views of model. The viewpoint locations are the vertices of a tessellated sphere build from an icosaheadron. The tessellation parameter controls how many times the triangles of the original icosahedron are divided to approximate the sphere and thus the number of partial view generated for a model, with a tesselation_level of 0, 12 views are generated if use_vertices=true and 20 views if use_vertices=false </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">xres</td><td>the size of the window (X) used to render the partial view of the object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">yres</td><td>the size of the window (Y) used to render the partial view of the object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>is a vector of pointcloud with XYZ information that represent the model as seen from the respective viewpoints. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">poses</td><td>represent the transformation from object coordinates to camera coordinates for the respective viewpoint. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">enthropies</td><td>are values between 0 and 1 representing which percentage of the model is seen from the respective viewpoint. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tesselation_level</td><td>represents the number of subdivisions applied to the triangles of original icosahedron. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">view_angle</td><td>field of view of the virtual camera. Default: 45 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">radius_sphere</td><td>the tessellated sphere radius. Default: 1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">use_vertices</td><td>if true, use the vertices of tessellated icosahedron (12,42,...) or if false, use the faces of tessellated icosahedron (20,80,...). Default: true </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a56e6ac666017221a6ad88d5cef948ac5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56e6ac666017221a6ad88d5cef948ac5">&#9670;&nbsp;</a></span>resetCameraViewpoint()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::resetCameraViewpoint </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reset the camera direction from {0, 0, 0} to the center_{x, y, z} of a given dataset. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a321501a8be8e27a097b44b705fc2edc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a321501a8be8e27a097b44b705fc2edc1">&#9670;&nbsp;</a></span>saveCameraParameters()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::saveCameraParameters </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save the camera parameters to disk, as a .cam file. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>the name of the .cam file </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac6fbe63d727c9f910c0fed5b373b88e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6fbe63d727c9f910c0fed5b373b88e4">&#9670;&nbsp;</a></span>saveScreenshot()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::saveScreenshot </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save the current rendered image to disk, as a PNG screenshot. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>the name of the PNG file </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a34013d7b668f2e42759c74c58bd4801b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34013d7b668f2e42759c74c58bd4801b">&#9670;&nbsp;</a></span>setBackgroundColor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setBackgroundColor </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the viewport's background color. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red component of the <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green component of the <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue component of the <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port (default: all) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa1e26f78e677d2df2230e3919d6bab55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1e26f78e677d2df2230e3919d6bab55">&#9670;&nbsp;</a></span>setCameraClipDistances()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraClipDistances </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>near</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>far</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera clipping distances. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">near</td><td>the near clipping distance (no objects closer than this to the camera will be drawn) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">far</td><td>the far clipping distance (no objects further away than this to the camera will be drawn) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7e5144690885b51333a9bcb94bf89b5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e5144690885b51333a9bcb94bf89b5a">&#9670;&nbsp;</a></span>setCameraFieldOfView()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraFieldOfView </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>fovy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera vertical field of view. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fovy</td><td>vertical field of view in radians </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a912662671175fc1d3899d576d94d0d07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a912662671175fc1d3899d576d94d0d07">&#9670;&nbsp;</a></span>setCameraParameters() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraParameters </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_camera.html">Camera</a> &amp;&#160;</td>
          <td class="paramname"><em>camera</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera parameters by given a full camera data structure. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">camera</td><td>camera structure containing all the camera parameters. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afc05571bae25da7189c33167ce34cf7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc05571bae25da7189c33167ce34cf7f">&#9670;&nbsp;</a></span>setCameraParameters() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraParameters </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix3f &amp;&#160;</td>
          <td class="paramname"><em>intrinsics</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>extrinsics</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera parameters via an intrinsics and and extrinsics matrix </p>
<dl class="section note"><dt>注解</dt><dd>This assumes that the pixels are square and that the center of the image is at the center of the sensor. </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">intrinsics</td><td>the intrinsics that will be used to compute the VTK camera parameters </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">extrinsics</td><td>the extrinsics that will be used to compute the VTK camera parameters </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab2039927ec8f5a9771202f269987ec72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2039927ec8f5a9771202f269987ec72">&#9670;&nbsp;</a></span>setCameraPosition() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraPosition </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera location and viewup according to the given arguments </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_x</td><td>the x coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_y</td><td>the y coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_z</td><td>the z coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_x</td><td>the x component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_y</td><td>the y component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_z</td><td>the z component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2232b62d2dd1caead79df190731b810c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2232b62d2dd1caead79df190731b810c">&#9670;&nbsp;</a></span>setCameraPosition() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setCameraPosition </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>pos_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>view_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>view_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>view_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>up_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the camera pose given by position, viewpoint and up vector </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_x</td><td>the x coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_y</td><td>the y coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos_z</td><td>the z coordinate of the camera location </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">view_x</td><td>the x component of the view point of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">view_y</td><td>the y component of the view point of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">view_z</td><td>the z component of the view point of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_x</td><td>the x component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_y</td><td>the y component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">up_z</td><td>the y component of the view up direction of the camera </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the viewport to modify camera of (0 modifies all cameras) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a72cae67918479779c88da0e55ec8d264"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72cae67918479779c88da0e55ec8d264">&#9670;&nbsp;</a></span>setFullScreen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setFullScreen </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables/Disabled the underlying window mode to full screen. </p>
<dl class="section note"><dt>注解</dt><dd>This might or might not work, depending on your window manager. See the VTK documentation for additional details. </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>true for full screen, false otherwise </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a786724207171c8181a5ff10d2956b875"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a786724207171c8181a5ff10d2956b875">&#9670;&nbsp;</a></span>setLookUpTableID()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setLookUpTableID </td>
          <td>(</td>
          <td class="paramtype">const std::string&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the ID of a cloud or shape to be used for LUT display </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the cloud/shape look up table to be displayed The look up table is displayed by pressing 'u' in the <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af23c9bbc0af139ab3829143e7bf59c47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af23c9bbc0af139ab3829143e7bf59c47">&#9670;&nbsp;</a></span>setPointCloudRenderingProperties() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> (2x values - e.g., LUT minmax values) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val1</td><td>the first value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val2</td><td>the second value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a>'s rendering properties should be modified (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>The list of properties can be found in pcl::visualization::LookUpTableRepresentationProperties. </dd></dl>

</div>
</div>
<a id="a003ffc7d15828faecd0404f4251b56a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a003ffc7d15828faecd0404f4251b56a8">&#9670;&nbsp;</a></span>setPointCloudRenderingProperties() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> (3x values - e.g., <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a>) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val1</td><td>the first value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val2</td><td>the second value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val3</td><td>the third value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a>'s rendering properties should be modified (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>The list of properties can be found in pcl::visualization::LookUpTableRepresentationProperties. </dd></dl>

</div>
</div>
<a id="ac545eecb62dd0023b68cf1e0cc88b73e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac545eecb62dd0023b68cf1e0cc88b73e">&#9670;&nbsp;</a></span>setPointCloudRenderingProperties() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rendering properties of a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a>'s rendering properties should be modified (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>The list of properties can be found in pcl::visualization::LookUpTableRepresentationProperties. </dd></dl>

</div>
</div>
<a id="a563125f9ecd29bd1e4c355f5f580483a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a563125f9ecd29bd1e4c355f5f580483a">&#9670;&nbsp;</a></span>setPointCloudSelected()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setPointCloudSelected </td>
          <td>(</td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>selected</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set whether the point cloud is selected or not </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">selected</td><td>whether the cloud is selected or not (true = selected) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (default: cloud) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0932d49a78ea102e248781a631294499"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0932d49a78ea102e248781a631294499">&#9670;&nbsp;</a></span>setPosition()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setPosition </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the position in screen coordinates. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>where to move the window to (X) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>where to move the window to (Y) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab7706715bdaa84f385f5bb28732d81b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7706715bdaa84f385f5bb28732d81b6">&#9670;&nbsp;</a></span>setShapeRenderingProperties() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setShapeRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rendering properties of a shape (3x values - e.g., <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a>) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val1</td><td>the first value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val2</td><td>the second value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val3</td><td>the third value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the shape object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the shape's properties should be modified (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>When using <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a04b488bead8ef944b22690be9f768e24">addPolygonMesh</a> you you should use <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a003ffc7d15828faecd0404f4251b56a8">setPointCloudRenderingProperties</a> </dd></dl>

</div>
</div>
<a id="aab6916c53720b4102b5dd4a7ce003907"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab6916c53720b4102b5dd4a7ce003907">&#9670;&nbsp;</a></span>setShapeRenderingProperties() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::setShapeRenderingProperties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rendering properties of a shape </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the value to be set </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the shape object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the shape's properties should be modified (default: all) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>When using <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a04b488bead8ef944b22690be9f768e24">addPolygonMesh</a> you you should use <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a003ffc7d15828faecd0404f4251b56a8">setPointCloudRenderingProperties</a> </dd>
<dd>
The list of properties can be found in pcl::visualization::LookUpTableRepresentationProperties. </dd></dl>

</div>
</div>
<a id="a9438cc0301c631b9ddcf036cbf6bc1c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9438cc0301c631b9ddcf036cbf6bc1c0">&#9670;&nbsp;</a></span>setShowFPS()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setShowFPS </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>show_fps</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets whether the 2D overlay text showing the framerate of the window is displayed or not. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">show_fps</td><td>determines whether the fps text will be shown or not. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8c3ed261cb86632935f594d2b61535ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c3ed261cb86632935f594d2b61535ff">&#9670;&nbsp;</a></span>setSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xw</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>yw</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the window size in screen coordinates. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">xw</td><td>window size in horizontal (pixels) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">yw</td><td>window size in vertical (pixels) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9f2ab0047663bcd23e48cf39b74145de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f2ab0047663bcd23e48cf39b74145de">&#9670;&nbsp;</a></span>setupInteractor() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setupInteractor </td>
          <td>(</td>
          <td class="paramtype">vtkRenderWindowInteractor *&#160;</td>
          <td class="paramname"><em>iren</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vtkRenderWindow *&#160;</td>
          <td class="paramname"><em>win</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up our unique PCL interactor style for a given vtkRenderWindowInteractor object attached to a given vtkRenderWindow </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">iren</td><td>the vtkRenderWindowInteractor object to set up </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">win</td><td>a vtkRenderWindow object that the interactor is attached to </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a26b785bcbdf1aaec1db1e1cfa15aa5f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26b785bcbdf1aaec1db1e1cfa15aa5f4">&#9670;&nbsp;</a></span>setupInteractor() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setupInteractor </td>
          <td>(</td>
          <td class="paramtype">vtkRenderWindowInteractor *&#160;</td>
          <td class="paramname"><em>iren</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vtkRenderWindow *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vtkInteractorStyle *&#160;</td>
          <td class="paramname"><em>style</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up <a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html" title="PCL Visualizer main class.">PCLVisualizer</a> with custom interactor style for a given vtkRenderWindowInteractor object attached to a given vtkRenderWindow </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">iren</td><td>the vtkRenderWindowInteractor object to set up </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">win</td><td>a vtkRenderWindow object that the interactor is attached to </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">style</td><td>a vtkInteractorStyle object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a937a988cd3bd473f11120f1386edc411"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a937a988cd3bd473f11120f1386edc411">&#9670;&nbsp;</a></span>setUseVbos()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setUseVbos </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_vbos</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Use Vertex Buffer Objects renderers. This is an optimization for the obsolete OpenGL backend. Modern OpenGL2 backend (VTK ≥ 6.3) uses vertex buffer objects by default, transparently for the user. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">use_vbos</td><td>set to true to use VBOs </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="abfda06df14a88477fb651bd7a34e239b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfda06df14a88477fb651bd7a34e239b">&#9670;&nbsp;</a></span>setWindowBorders()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setWindowBorders </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables or disable the underlying window borders. </p>
<dl class="section note"><dt>注解</dt><dd>This might or might not work, depending on your window manager. See the VTK documentation for additional details. </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>true for borders, false otherwise </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="abc6af0973c4630d8770b3f18f21e794a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc6af0973c4630d8770b3f18f21e794a">&#9670;&nbsp;</a></span>setWindowName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::setWindowName </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the visualizer window name. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the name of the window </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a896556f91ba6b45b12a9543a2b397193"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a896556f91ba6b45b12a9543a2b397193">&#9670;&nbsp;</a></span>spinOnce()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::spinOnce </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>time</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>force_redraw</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Spin once method. Calls the interactor and updates the screen once. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">time</td><td>- How long (in ms) should the visualization loop be allowed to run. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">force_redraw</td><td>- if false it might return without doing anything if the interactor's framerate does not require a redraw yet. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac69ac5e1fc2af1a9d36cbf11df85437e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac69ac5e1fc2af1a9d36cbf11df85437e">&#9670;&nbsp;</a></span>textureFromTexMaterial()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::visualization::PCLVisualizer::textureFromTexMaterial </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_tex_material.html">pcl::TexMaterial</a> &amp;&#160;</td>
          <td class="paramname"><em>tex_mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vtkTexture *&#160;</td>
          <td class="paramname"><em>vtk_tex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fills a vtkTexture structure from <a class="el" href="structpcl_1_1_tex_material.html">pcl::TexMaterial</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tex_mat</td><td>texture material in PCL format </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">vtk_tex</td><td>texture material in VTK format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>0 on success and -1 else. </dd></dl>
<dl class="section note"><dt>注解</dt><dd>for now only image based textures are supported, image file must be in tex_file attribute of <em>tex_mat</em>. </dd></dl>

</div>
</div>
<a id="a6107059bfc93543dceb1f88c6f1312ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6107059bfc93543dceb1f88c6f1312ab">&#9670;&nbsp;</a></span>updateCells()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::visualization::PCLVisualizer::updateCells </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;&#160;</td>
          <td class="paramname"><em>cells</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classvtk_smart_pointer.html">vtkSmartPointer</a>&lt; vtkIdTypeArray &gt; &amp;&#160;</td>
          <td class="paramname"><em>initcells</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vtkIdType&#160;</td>
          <td class="paramname"><em>nr_points</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates a set of cells (vtkIdTypeArray) if the number of points in a cloud changes </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">cells</td><td>the vtkIdTypeArray object (set of cells) to update </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">initcells</td><td>a previously saved set of cells. If the number of points in the current cloud is higher than the number of cells in <em>cells</em>, and initcells contains enough data, then a copy from it will be made instead of regenerating the entire array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nr_points</td><td>the number of points in the new cloud. This dictates how many cells we need to generate </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3352461e9b339cb02b279262f9b1055e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3352461e9b339cb02b279262f9b1055e">&#9670;&nbsp;</a></span>updateColorHandlerIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateColorHandlerIndex </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update/set the color index of a rendered <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> based on its ID </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>the color handler index to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a184a5cbd3f15b911567967d1505ba31b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a184a5cbd3f15b911567967d1505ba31b">&#9670;&nbsp;</a></span>updateCoordinateSystemPose()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateCoordinateSystemPose </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the pose of an existing coordinate system. </p>
<p>Returns false if the coordinate system doesn't exist, true if the pose was successfully updated.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (i.e., given on <em>addCoordinateSystem</em> etc.) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>the new pose </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no coordinate system with the specified ID was found </dd></dl>

</div>
</div>
<a id="af76f96a296f3cce6835b53758d3bffb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af76f96a296f3cce6835b53758d3bffb7">&#9670;&nbsp;</a></span>updateCorrespondences() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the specified correspondences to the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>The source points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target_points</td><td>The target points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>The mapping from source points to target points. Each element must be an index into target_points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "correspondences") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the correspondences should be updated (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;        {</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;          <span class="comment">// If Nth not given, display all correspondences</span></div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;          <span class="keywordflow">return</span> (updateCorrespondences&lt;PointT&gt; (source_points, target_points,</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;                                              correspondences, 1, <span class="keywordtype">id</span>, viewport));</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af6522961411e6db8f000279392dfae35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6522961411e6db8f000279392dfae35">&#9670;&nbsp;</a></span>updateCorrespondences() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;correspondences&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>viewport</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update the specified correspondences to the display. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>The source points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target_points</td><td>The target points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>The mapping from source points to target points. Each element must be an index into target_points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nth</td><td>display only the Nth correspondence (e.g., skip the rest) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "correspondences") </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">viewport</td><td>the view port where the correspondences should be updated (default: all) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;{</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;  <span class="keywordflow">return</span> (addCorrespondences&lt;PointT&gt; (source_points, target_points, correspondences, nth, <span class="keywordtype">id</span>, viewport, <span class="keyword">true</span>));</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5e2193cc3b2e249a70c322f5d3f241e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e2193cc3b2e249a70c322f5d3f241e9">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[1/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the XYZ data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        {</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;          <span class="keywordflow">return</span> (updatePointCloud&lt;pcl::PointXYZ&gt; (cloud, <span class="keywordtype">id</span>));</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac0941fd0aedead6abb254f7d00a13c33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0941fd0aedead6abb254f7d00a13c33">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[2/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">pcl::PointXYZL</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the XYZL data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;        {</div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field.html">pcl::visualization::PointCloudColorHandlerLabelField&lt;pcl::PointXYZL&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;          <span class="keywordflow">return</span> (updatePointCloud&lt;pcl::PointXYZL&gt; (cloud, color_handler, <span class="keywordtype">id</span>));</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b87f30abc395556c997c320d1c674c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b87f30abc395556c997c320d1c674c6">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[3/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the XYZRGB data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;        {</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field.html">pcl::visualization::PointCloudColorHandlerRGBField&lt;pcl::PointXYZRGB&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;          <span class="keywordflow">return</span> (updatePointCloud&lt;pcl::PointXYZRGB&gt; (cloud, color_handler, <span class="keywordtype">id</span>));</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad52d632938d7f3e28df02c2b5a623ce7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad52d632938d7f3e28df02c2b5a623ce7">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[4/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the XYZRGBA data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        {</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;          <a class="code" href="classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field.html">pcl::visualization::PointCloudColorHandlerRGBAField&lt;pcl::PointXYZRGBA&gt;</a> color_handler (cloud);</div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;          <span class="keywordflow">return</span> (updatePointCloud&lt;pcl::PointXYZRGBA&gt; (cloud, color_handler, <span class="keywordtype">id</span>));</div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aad3dbcb520b9af0d09f03f2467b3f46e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad3dbcb520b9af0d09f03f2467b3f46e">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[5/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_color_handler.html">PointCloudColorHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>color_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Updates the XYZ data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color_handler</td><td>the color handler to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;{</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; </div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;  <span class="keywordflow">if</span> (am_it == <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; </div>
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;  <span class="comment">// Get the current poly data</span></div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata = <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;GetInput ();</div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;  <span class="keywordflow">if</span> (!polydata)</div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> vertices = polydata-&gt;GetVerts ();</div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points      = polydata-&gt;GetPoints ();</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;  <span class="comment">// Copy the new point array in</span></div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;  vtkIdType nr_points = cloud-&gt;points.size ();</div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;  points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; </div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;  <span class="comment">// Get a pointer to the beginning of the data array</span></div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;  <span class="keywordtype">float</span> *data = (<span class="keyword">static_cast&lt;</span>vtkFloatArray*<span class="keyword">&gt;</span> (points-&gt;GetData ()))-&gt;GetPointer (0);</div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; </div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;  <span class="keywordtype">int</span> pts = 0;</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;  <span class="comment">// If the dataset is dense (no NaNs)</span></div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;  <span class="keywordflow">if</span> (cloud-&gt;is_dense)</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;  {</div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i, pts += 3)</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;      memcpy (&amp;data[pts], &amp;cloud-&gt;points[i].x, 12);    <span class="comment">// sizeof (float) * 3</span></div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;  }</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;  {</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;    vtkIdType j = 0;    <span class="comment">// true point index</span></div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i)</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;    {</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;      <span class="comment">// Check if the point is invalid</span></div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;      <span class="keywordflow">if</span> (!isFinite (cloud-&gt;points[i]))</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; </div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;      memcpy (&amp;data[pts], &amp;cloud-&gt;points[i].x, 12);    <span class="comment">// sizeof (float) * 3</span></div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;      pts += 3;</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;      j++;</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;    }</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;    nr_points = j;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;    points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;  }</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; </div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkIdTypeArray&gt;</a> cells = vertices-&gt;GetData ();</div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a6107059bfc93543dceb1f88c6f1312ab">updateCells</a> (cells, am_it-&gt;second.cells, nr_points);</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; </div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;  <span class="comment">// Set the cells and the vertices</span></div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;  vertices-&gt;SetCells (nr_points, cells);</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; </div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;  <span class="comment">// Get the colors from the handler</span></div>
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;  color_handler.getColor (scalars);</div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;  scalars-&gt;GetRange (minmax);</div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;  <span class="comment">// Update the data</span></div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;  polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; </div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;ImmediateModeRenderingOff ();</div>
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; </div>
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;  <span class="comment">// Update the mapper</span></div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInput (polydata);</div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> (am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInputData (polydata);</div>
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae7ae1c16fca556f85f007b256dd9a313"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7ae1c16fca556f85f007b256dd9a313">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[6/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1visualization_1_1_point_cloud_geometry_handler.html">PointCloudGeometryHandler</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>geometry_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Updates the XYZ data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geometry_handler</td><td>the geometry handler to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;{</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; </div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;  <span class="keywordflow">if</span> (am_it == <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; </div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata = <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;GetInput ();</div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;  <span class="keywordflow">if</span> (!polydata)</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;  <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a596ed7f68d3a48b0c16ff0e3141e2a59">convertPointCloudToVTKPolyData</a> (geometry_handler, polydata, am_it-&gt;second.cells);</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; </div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;  <span class="comment">// Set scalars to blank, since there is no way we can update them here.</span></div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;  polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;  minmax[0] = std::numeric_limits&lt;double&gt;::min ();</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;  minmax[1] = std::numeric_limits&lt;double&gt;::max ();</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;ImmediateModeRenderingOff ();</div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; </div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;  <span class="comment">// Update the mapper</span></div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInput (polydata);</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> (am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInputData (polydata);</div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a629dbb72b085fa25d382fa982eaefa64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a629dbb72b085fa25d382fa982eaefa64">&#9670;&nbsp;</a></span>updatePointCloud() <span class="overload">[7/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;cloud&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Updates the XYZ data for an existing cloud object id on screen. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id to update (default: cloud) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no cloud with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;{</div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; </div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;  <span class="keywordflow">if</span> (am_it == <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; </div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata = <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;GetInput ();</div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;  <span class="comment">// Convert the PointCloud to VTK PolyData</span></div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;  convertPointCloudToVTKPolyData&lt;PointT&gt; (cloud, polydata, am_it-&gt;second.cells);</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; </div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;  <span class="comment">// Set scalars to blank, since there is no way we can update them here.</span></div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkDataArray&gt;</a> scalars;</div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;  polydata-&gt;GetPointData ()-&gt;SetScalars (scalars);</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;  <span class="keywordtype">double</span> minmax[2];</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;  minmax[0] = std::numeric_limits&lt;double&gt;::min ();</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;  minmax[1] = std::numeric_limits&lt;double&gt;::max ();</div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;ImmediateModeRenderingOff ();</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;  am_it-&gt;second.actor-&gt;GetMapper ()-&gt;SetScalarRange (minmax);</div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; </div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;  <span class="comment">// Update the mapper</span></div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInput (polydata);</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;  <span class="keyword">reinterpret_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span> (am_it-&gt;second.actor-&gt;GetMapper ())-&gt;SetInputData (polydata);</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a560454addd48366effa0bcafd1edd116"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a560454addd48366effa0bcafd1edd116">&#9670;&nbsp;</a></span>updatePointCloudPose()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePointCloudPose </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the pose of an existing point cloud. </p>
<p>Returns false if the point cloud doesn't exist, true if the pose was successfully updated.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the point cloud object id (i.e., given on <em>addPointCloud</em> etc.) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>the new pose </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no point cloud with the specified ID was found </dd></dl>

</div>
</div>
<a id="a31209d704ccb98cb61a615d6e5526b0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31209d704ccb98cb61a615d6e5526b0d">&#9670;&nbsp;</a></span>updatePolygonMesh() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_polygon_mesh.html">pcl::PolygonMesh</a> &amp;&#160;</td>
          <td class="paramname"><em>polymesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object on screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">polymesh</td><td>the polygonal mesh </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "polygon") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no polygonmesh with the specified ID was found </dd></dl>

</div>
</div>
<a id="aae07d5848ec01103ec7c6a256d040463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae07d5848ec01103ec7c6a256d040463">&#9670;&nbsp;</a></span>updatePolygonMesh() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updatePolygonMesh </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structpcl_1_1_vertices.html">pcl::Vertices</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;polygon&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update a <a class="el" href="structpcl_1_1_polygon_mesh.html">PolygonMesh</a> object on screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the polygonal mesh point cloud </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">vertices</td><td>the polygonal mesh vertices </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the polygon object id (default: "polygon") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no polygonmesh with the specified ID was found </dd></dl>
<div class="fragment"><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;{</div>
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;  <span class="keywordflow">if</span> (verts.empty ())</div>
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;  {</div>
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;     pcl::console::print_error (<span class="stringliteral">&quot;[addPolygonMesh] No vertices given!\n&quot;</span>);</div>
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;     <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;  }</div>
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; </div>
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;  <span class="comment">// Check to see if this ID entry already exists (has it been already added to the visualizer?)</span></div>
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;  CloudActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;  <span class="keywordflow">if</span> (am_it == <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a66cfd9ec06e2aca25460c810a9ebc56f">cloud_actor_map_</a>-&gt;end ())</div>
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; </div>
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;  <span class="comment">// Get the current poly data</span></div>
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPolyData&gt;</a> polydata = <span class="keyword">static_cast&lt;</span>vtkPolyDataMapper*<span class="keyword">&gt;</span>(am_it-&gt;second.actor-&gt;GetMapper ())-&gt;GetInput ();</div>
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;  <span class="keywordflow">if</span> (!polydata)</div>
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;</a> cells = polydata-&gt;GetPolys ();</div>
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;  <span class="keywordflow">if</span> (!cells)</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;  <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkPoints&gt;</a> points   = polydata-&gt;GetPoints ();</div>
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;  <span class="comment">// Copy the new point array in</span></div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;  vtkIdType nr_points = cloud-&gt;points.size ();</div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;  points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; </div>
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;  <span class="comment">// Get a pointer to the beginning of the data array</span></div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;  <span class="keywordtype">float</span> *data = (<span class="keyword">static_cast&lt;</span>vtkFloatArray*<span class="keyword">&gt;</span> (points-&gt;GetData ()))-&gt;GetPointer (0);</div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; </div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;  <span class="keywordtype">int</span> ptr = 0;</div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;  std::vector&lt;int&gt; lookup;</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;  <span class="comment">// If the dataset is dense (no NaNs)</span></div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;  <span class="keywordflow">if</span> (cloud-&gt;is_dense)</div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;  {</div>
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i, ptr += 3)</div>
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;      memcpy (&amp;data[ptr], &amp;cloud-&gt;points[i].x, sizeof (<span class="keywordtype">float</span>) * 3);</div>
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;  }</div>
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;  {</div>
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    lookup.resize (nr_points);</div>
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;    vtkIdType j = 0;    <span class="comment">// true point index</span></div>
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;    <span class="keywordflow">for</span> (vtkIdType i = 0; i &lt; nr_points; ++i)</div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    {</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;      <span class="comment">// Check if the point is invalid</span></div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;      <span class="keywordflow">if</span> (!isFinite (cloud-&gt;points[i]))</div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; </div>
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;      lookup [i] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (j);</div>
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;      memcpy (&amp;data[ptr], &amp;cloud-&gt;points[i].x, sizeof (<span class="keywordtype">float</span>) * 3);</div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;      j++;</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;      ptr += 3;</div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;    }</div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;    nr_points = j;</div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;    points-&gt;SetNumberOfPoints (nr_points);</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;  }</div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; </div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;  <span class="comment">// Update colors</span></div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;  vtkUnsignedCharArray* colors = vtkUnsignedCharArray::SafeDownCast (polydata-&gt;GetPointData ()-&gt;GetScalars ());</div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;  <span class="keywordflow">if</span> (!colors)</div>
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;  <span class="keywordtype">int</span> rgb_idx = -1;</div>
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;  std::vector&lt;pcl::PCLPointField&gt; fields;</div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;  rgb_idx = <a class="code" href="group__common.html#ga2bc4b9a4e25de1d0b00db4e41f0ad682">pcl::getFieldIndex</a> (*cloud, <span class="stringliteral">&quot;rgb&quot;</span>, fields);</div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;  <span class="keywordflow">if</span> (rgb_idx == -1)</div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;    rgb_idx = <a class="code" href="group__common.html#ga2bc4b9a4e25de1d0b00db4e41f0ad682">pcl::getFieldIndex</a> (*cloud, <span class="stringliteral">&quot;rgba&quot;</span>, fields);</div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;  <span class="keywordflow">if</span> (rgb_idx != -1 &amp;&amp; colors)</div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;  {</div>
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    <a class="code" href="structpcl_1_1_r_g_b.html">pcl::RGB</a> rgb_data;</div>
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;    <span class="keywordtype">int</span> j = 0;</div>
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; cloud-&gt;size (); ++i)</div>
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;    {</div>
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;      <span class="keywordflow">if</span> (!isFinite (cloud-&gt;points[i]))</div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;      memcpy (&amp;rgb_data, </div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;              <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span> (&amp;cloud-&gt;points[i]) + fields[rgb_idx].offset,</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;              sizeof (<a class="code" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>));</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;      <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> color[3];</div>
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;      color[0] = rgb_data.r;</div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;      color[1] = rgb_data.g;</div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;      color[2] = rgb_data.b;</div>
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;      colors-&gt;SetTupleValue (j++, color);</div>
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;    }</div>
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;  }</div>
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; </div>
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;  <span class="comment">// Get the maximum size of a polygon</span></div>
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;  <span class="keywordtype">int</span> max_size_of_polygon = -1;</div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; verts.size (); ++i)</div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;    <span class="keywordflow">if</span> (max_size_of_polygon &lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (verts[i].vertices.size ()))</div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;      max_size_of_polygon = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (verts[i].vertices.size ());</div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; </div>
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;  <span class="comment">// Update the cells</span></div>
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;  cells = <a class="code" href="classvtk_smart_pointer.html">vtkSmartPointer&lt;vtkCellArray&gt;::New</a> ();</div>
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;  vtkIdType *cell = cells-&gt;WritePointer (verts.size (), verts.size () * (max_size_of_polygon + 1));</div>
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;  <span class="keywordtype">int</span> idx = 0;</div>
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;  <span class="keywordflow">if</span> (lookup.size () &gt; 0)</div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;  {</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; verts.size (); ++i, ++idx)</div>
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;    {</div>
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;      <span class="keywordtype">size_t</span> n_points = verts[i].vertices.size ();</div>
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;      *cell++ = n_points;</div>
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; n_points; j++, cell++, ++idx)</div>
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;        *cell = lookup[verts[i].vertices[j]];</div>
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;    }</div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;  }</div>
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;  {</div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; verts.size (); ++i, ++idx)</div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;    {</div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;      <span class="keywordtype">size_t</span> n_points = verts[i].vertices.size ();</div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;      *cell++ = n_points;</div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; n_points; j++, cell++, ++idx)</div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;        *cell = verts[i].vertices[j];</div>
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;    }</div>
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;  }</div>
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;  cells-&gt;GetData ()-&gt;SetNumberOfValues (idx);</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;  cells-&gt;Squeeze ();</div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;  <span class="comment">// Set the the vertices</span></div>
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;  polydata-&gt;SetPolys (cells);</div>
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; </div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a412c27c7c3188c503e1af5d3991c41cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a412c27c7c3188c503e1af5d3991c41cc">&#9670;&nbsp;</a></span>updateShapePose()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateShapePose </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the pose of an existing shape. </p>
<p>Returns false if the shape doesn't exist, true if the pose was successfully updated.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the shape or cloud object id (i.e., given on <em>addLine</em> etc.) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>the new pose </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>false if no shape or cloud with the specified ID was found </dd></dl>

</div>
</div>
<a id="a8562fd9611c985f3dfcca9acce8a5050"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8562fd9611c985f3dfcca9acce8a5050">&#9670;&nbsp;</a></span>updateSphere()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateSphere </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;sphere&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update an existing sphere shape from a point and a radius </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">center</td><td>the center of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">radius</td><td>the radius of the sphere </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue channel of the color that the sphere should be rendered with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the sphere id/name (default: "sphere") </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;{</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abaf97c77fe52b4db363ddb5890f1b74f">contains</a> (<span class="keywordtype">id</span>))</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  {</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  }</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160; </div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="comment">// Get the actor pointer</span></div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  ShapeActorMap::iterator am_it = <a class="code" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html#abd7fa6ba58c92f482755370377cb2d9f">shape_actor_map_</a>-&gt;find (<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  vtkLODActor* actor = vtkLODActor::SafeDownCast (am_it-&gt;second);</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  <span class="keywordflow">if</span> (!actor)</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;<span class="preprocessor">#if VTK_MAJOR_VERSION &lt; 6</span></div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  vtkAlgorithm *algo = actor-&gt;GetMapper ()-&gt;GetInput ()-&gt;GetProducerPort ()-&gt;GetProducer ();</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  vtkAlgorithm *algo = actor-&gt;GetMapper ()-&gt;GetInputAlgorithm ();</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;  vtkSphereSource *src = vtkSphereSource::SafeDownCast (algo);</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;  <span class="keywordflow">if</span> (!src)</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; </div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;  src-&gt;SetCenter (<span class="keywordtype">double</span> (center.x), double (center.y), double (center.z));</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;  src-&gt;SetRadius (radius);</div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  src-&gt;Update ();</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;  actor-&gt;GetProperty ()-&gt;SetColor (r, g, b);</div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;  actor-&gt;Modified ();</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160; </div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a56e56574ccd4efdc7589d7a61b119089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56e56574ccd4efdc7589d7a61b119089">&#9670;&nbsp;</a></span>updateText() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to update </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the new X position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the new Y position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ababf3899a9094a9e5b1383c7f4e5f232"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ababf3899a9094a9e5b1383c7f4e5f232">&#9670;&nbsp;</a></span>updateText() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to update </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the new X position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the new Y position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8c57d88acb130698de0f9a58bf08e714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c57d88acb130698de0f9a58bf08e714">&#9670;&nbsp;</a></span>updateText() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::visualization::PCLVisualizer::updateText </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fontsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update a text to screen </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">text</td><td>the text to update </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>the new X position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>the new Y position on screen </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fontsize</td><td>the fontsize of the text </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the red color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>the green color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the blue color value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>the text object id (default: equal to the "text" parameter) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>visualization/include/pcl/visualization/<a class="el" href="pcl__visualizer_8h_source.html">pcl_visualizer.h</a></li>
<li>visualization/include/pcl/visualization/impl/<a class="el" href="pcl__visualizer_8hpp_source.html">pcl_visualizer.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>visualization</b></li><li class="navelem"><a class="el" href="classpcl_1_1visualization_1_1_p_c_l_visualizer.html">PCLVisualizer</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
